- 1 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:56:18 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build75 pc11.2ch.net/test/read.cgi/tech/1231423602/
- 42 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:39:51 ]
- 文字列を仮想キーコードに変換できる?
"A" → VK_A "Shift" → VK_SHIFT みたいなの
- 43 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:44:12 ]
- 要するにメッセージフックではメッセージをカットすることはできないと?
ではメッセージフックの他にメッセージをカットする方法ありますか?
- 44 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:50:01 ]
- >>32
前スレかどっかで答えたのじゃだめなん? CreateProcessで立ち上げたアプリのHINSTANCEから メインウィンドウのハンドルを取得して そのウィンドウハンドルを自分のウィンドウの子ウィンドウにするように ウィンドウスタイル変更したらいいんじゃね?
- 45 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:17:57 ]
- >>43
たしか、消し去りたいときはWM_NULLにしてしまうのではなかったかな?
- 46 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:25:20 ]
- ×メッセージフックではメッセージをカットすることはできない
△WH_CALLWNDPROCではではメッセージをカットすることはできない
- 47 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:38:47 ]
- 変更可能なのWH_MESSAGEだけじゃね。
あとローレベルフック。
- 48 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:43:04 ]
- LoadImageでL"image\\hoge.png"を渡して
PNGの画像を読み込もうとすると0が返ってくるです。 どうすればいいですか?
- 49 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:02:54 ]
- >>48
まずはMSDNを読め。
- 50 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:07:48 ]
- LoadImageっていつの間にかpngに対応したのか
今日はじめて知ったよ
- 51 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:10:01 ]
- >42
無理じゃないかなー。情報減ってるんで。
- 52 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:15:57 ]
- ヘッダ読んで置換
- 53 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:35:10 ]
- PNG扱いたいなら素直にGDI+使っとけ、で終了。
- 54 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:49:09 ]
- OleLoadPictureFileは対応しているように見えるな。
ファイル名をVARIANT型で渡す必要があるので多少面倒だが。 ……PGNという画像形式は流石に無いと信じたい。
- 55 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:56:19 ]
- PGNなんて画像形式聞いた事無いんだが
- 56 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:11:10 ]
- libpng
- 57 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:23:42 ]
- PGNも知らないとかいつの時代の人間だよ……
- 58 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:27:48 ]
- くやしい!…PGN…PGNッ
- 59 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:31:35 ]
- クリムゾンAPI
- 60 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:36:11 ]
- >>51
そうかーありがとう
- 61 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:40:06 ]
- DIBをStretchDIBits関数で描画したときに
YSrcを0,Xsrcを0以外に設定すると Yの座標がおかしくなるんだけど,そういうもの?
- 62 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:18:41 ]
- PGMじゃなくてPGNか。。
- 63 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:23:05 ]
- ピグモンカワユス
- 64 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:24:35 ]
- libpngは正直言ってお勧めしない
- 65 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:30:48 ]
- >文字列を仮想キーコードに変換できる?
変換テーブルを自前で用意すりゃいいじゃん。
- 66 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:33:38 ]
- 日本語文字は?
- 67 名前:名無し募集中。。。 mailto:sage [2009/02/04(水) 00:46:40 ]
- 俺ならSusie Plugin
- 68 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:02:45 ]
- pngのデコードくらい自分で書けばいい
- 69 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:09:28 ]
- イヤイヤマテマテ
BMPならともかく、PNGとかTIFFは相当手間かかると思うんだぜ
- 70 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:18:13 ]
- 特に、TIFFは色々対応し始めたらきりがないからな。
画像のデコード自体が目的なら止めはしないけど。
- 71 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:23:53 ]
- >>65
めんどいやん・・
- 72 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:36:15 ]
- MapVirtualKeyしてGetKeyNameTextして一致するやつ探せばええやん
PrtScrとかキーボードによって表記違うやつがどうなるか知らんけど
- 73 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:39:42 ]
- >>69
ガンマとか色空間を捨てればpngは比較的簡単だぞ
- 74 名前:デフォルトの名無しさん [2009/02/04(水) 07:27:16 ]
- pngはlibpngあっただろ
- 75 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 07:28:23 ]
- >>64に戻る
!!↓png以外の話題でお願いします!!
- 76 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:12:57 ]
- ヘッダからVK〜を検索して引けばいい
- 77 名前:デフォルトの名無しさん [2009/02/04(水) 11:30:51 ]
- >>48
www.geocities.jp/katayama_hirofumi_mz/win32/loadpng.htm
- 78 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:39:46 ]
- CLRのPanelコンポーネントに相当するものは何でしょうか?
- 79 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:57:15 ]
- static
- 80 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:27:05 ]
- 空のウィンドウ作って包含されるウィンドウの親をそいつにすればいい
- 81 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:28:04 ]
- ちょっと何言ってるかわかんないです
- 82 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:24:10 ]
- それは君の頭が悪いからです
- 83 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:26:08 ]
- どのアプリでもそうなんだが、AdobeReaderからのテキストのドロップが
変になるのはどっちが悪いんですか?
- 84 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:27:20 ]
- AbodeReaberが悪い
- 85 名前:78 mailto:sage [2009/02/04(水) 14:29:45 ]
- >>80
モードレスダイアログ作ってダイアログプロシージャ作って(ry ってやつですか?
- 86 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 15:04:25 ]
- StretchDIBitsで縮小したDIBビットデータにアクセスする方法を教えてください
- 87 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 15:21:33 ]
- GetDIBits
- 88 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:12:44 ]
- >>87
ありがとうございます。 とりあえずやってみたのですがうまくいきません。。 dwBufferに入ってるデータを縮小してまたdwBufferに戻したいのですが・・・ 1440x1080のDIBデータ(dwBuffer)を1280x720に縮小 dwBuffer = new DWORD[1440*1080]; dwBufferにデータをぶち込み BITMAPINFO bi; ::ZeroMemory( &bi, sizeof( BITMAPINFO ) ); bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); bi.bmiHeader.biWidth = 1440; bi.bmiHeader.biHeight = 1080; bi.bmiHeader.biPlanes = 1; bi.bmiHeader.biBitCount = 32; bi.bmiHeader.biCompression = BI_RGB; HDC hdc = ::CreateCompatibleDC( NULL ); HBITMAP hb = ::CreateCompatibleBitmap( NULL, 1280, 720 ); ::SelectObject( hdc, hb ); ::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY ); ::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS ); 突っ込み所満載かもしれませんがどこが悪いのでしょうか・・・
- 89 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:41:38 ]
- GetLastErrorぐらいやってから聞いてるんだろうな?
- 90 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:47:36 ]
- >>89
知らないならレスしないで下さい。ウザイだけです。
- 91 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:49:17 ]
- >>90
知らないならレスしないで下さい。ウザイだけです。
- 92 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:52:57 ]
- CreateCompatibleBitmapにNULL渡したら失敗するだろそりゃ
- 93 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:53:43 ]
- 何とCompatible(互換)なんだろうな
- 94 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:05:26 ]
- なにをするためにベタDIBデータ欲してるのか分からんが、多分そもそもCreateCompatibleBitmapじゃなくてCreateDIBSectionじゃないとダメな気がするなあ。
- 95 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:07:02 ]
- DC
- 96 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:17:10 ]
- 皆さん色々ご指摘ありがとうございます。
>>94 DWORD *buf; HDC hdc = ::CreateCompatibleDC( NULL ); HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 ); ::SelectObject( hdc, hb ); ::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY ); ::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS ); で試してみると先ほどは真っ黒だったのが今度は画面半分下から縮小された画像が表示されました。 (CreateCompatibleBitmapでhdcを指定しても真っ黒でした) ちなみに、StretchDIBitsはhdcにイメージのハンドルを与えてやると イメージには正常に縮小された画像が表示されていましたので 怪しい部分はそれ以外だとおもいますが・・・ また何処が間違っているかご指摘お願いします
- 97 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:19:44 ]
- bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720; ::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
- 98 名前:86 mailto:sage [2009/02/04(水) 18:24:11 ]
- >>97
早速のお答え有難うございます!! 確かにそれでちゃんと画面の上から書き出しましたが・・・ 今度は画像が崩れてしまいました>< でもこれで更に近いところまでくることがでいました!
- 99 名前:86 mailto:sage [2009/02/04(水) 18:32:43 ]
- すみません。
bi.bmiHeader.biWidth = 1280; bi.bmiHeader.biHeight = 720; をしたから画像がくずれたのではなくてその前から崩れた状態でした。。 くずれた状態というのは同じパターンを繰り返してるみたいな・・・ StretchDIBits自体はうまくいってるので他に怪しい所は CreateDIBSectionとGetDIBitsでしょうか?
- 100 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:35:05 ]
- AABB AB
AABB -> CD CCDD CCDD AABB AB■■ AABB -> CD■■ CCDD ■■■■ CCDD ■■■■ ビットマップごと小さくしたいのか、ビットマップの大きさは同じで 画像だけ小さくしたいのか
- 101 名前:86 mailto:sage [2009/02/04(水) 18:39:19 ]
- くぁwせdrftgyふじこl;p
>>97 神様ありがとう! おもいっきり勘違いしてましたすみません>< GetDIBitsの直前でそれをやればよかったんですね。 ちゃんと表示できました。ありがとうございます。 >>100 いやすみません。 1440x1080のDIBデータだけある状態で それを1280x720のサイズのDIBデータにしたかったんです><
- 102 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:16:17 ]
- DWORD の次は QWORD かと思ってたら
DWORDLONG という訳の分からないものだった衝撃
- 103 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:50:18 ]
- 日記はblogに書いてろクズ
- 104 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:52:46 ]
- ハ,,ハ
((⊂ ヽ ( ゚ω゚ ) / ⊃)) | L | '⌒V / ヽ,_,/ ヽ_./ お断りします __,,/,, i お断りします ( _ | \\_  ̄`'\ \ ヽ ) > ) (_/´ / / ( ヽ ヽ_)
- 105 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:41:00 ]
- basetsd.hに無いDWORDLONGなど邪道。
DWORDの次はDWORD64と決まっておるのだ。
- 106 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:49:00 ]
- タスクトレイにアイコン表示させて右クリックで操作したいんですが
google検索したところ、case WM_TRAYICONMESSAGE: case WM_TRAYICONMESSAGE: を使うサンプルが出てきました。 Borland C++ Compiler 5.5 で書いてるんですが未定義のシンボルと出て使えませんでした。 Borland C++ Compiler 5.5 での書き方って別にあるんですか?
- 107 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:51:37 ]
- >>106
勝手に定義してるだけだろ。
- 108 名前:デフォルトの名無しさん [2009/02/04(水) 22:52:35 ]
- Vista SP1,VC++2008 Win32Projectです。
ウィンドウにツールチップを設定したいのですがうまくいきません。 GetLastErrorは0でした。 主なコードは以下の通りです。 case WM_CREATE: GetClientRect(hWnd, &ClientRect); InitCommonControls(); hTool = CreateWindowEx ( WS_EX_LEFT, TOOLTIPS_CLASS, NULL, TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, hInst, NULL ); ToolInfo.cbSize = sizeof(TOOLINFO); ToolInfo.hinst = NULL; ToolInfo.hwnd = hWnd; ToolInfo.lParam = NULL; ToolInfo.lpReserved = NULL; ToolInfo.lpszText = L"テスト"; ToolInfo.rect = ClientRect; ToolInfo.uFlags = TTF_SUBCLASS; ToolInfo.uId = 1; SendMessage(hTool, TTM_ADDTOOL, NULL, (LPARAM)&ToolInfo); SendMessageの戻り値がFALSEでうまくいきません。 どこが悪いのでしょうか? VC++を始めて2ヶ月ちょっとの超初心者なので、調べ方が悪いのか解決方法が分りません。 誰かわかる人がいたら教えてください。お願いします。
- 109 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:53:10 ]
- WM_USER+1
- 110 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:56:00 ]
- >>61を知ってる人いません?
- 111 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:02:03 ]
- >>107、>>109
ああ、わかりました。ありがとうございました。
- 112 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:02:45 ]
- >未定義のシンボルと出て使えませんでした。
アプリケーション定義のメッセージだもの、自分で定義しなきゃ使えんよ。 #define WM_TRAYICONMESSAGE WM_APP + 1 とでもしておけ。
- 113 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:11:44 ]
- >>105
なんで QWORD にしないんだろうか・・・ 5ワードと区別がつかないからか?
- 114 名前:名無し募集中。。。 mailto:sage [2009/02/04(水) 23:19:45 ]
- QUAD?
- 115 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:21:37 ]
- クアッドワード
- 116 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:34:58 ]
- 自分でQWORDって定義して使ってたけど
WORDLONGなんてあったんだね
- 117 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:45:52 ]
- もうUINT64でいいよ。
- 118 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:49:18 ]
- >>110
DIBは通常BottomToTopなので……まあ、色々あるんだわ、これが。 とりあえず、昔のDIB系のAPI使うより、 CreateDIBSectionから始めたほうが幸せになれる、とだけは言っとく。
- 119 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:52:40 ]
- >>118
thx,幸せになるため変更してみる
- 120 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:44:50 ]
- ウィンドウを毎秒50フレームで再描画してるんですが、ダブルバッファリングしてもどうしてもちらつきが多いです。
GDIとかで描いてる以上チラつきをDirectX並に減らすことは無理です?
- 121 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:04:28 ]
- ちらついてる原因にもよるが。WM_ERASEBKGNDは潰しとけとかその辺は押さえてるか?
- 122 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:49:12 ]
- セカンダリモニタの開始座標位置(左上の座標)を得るにはどうすればいいですか?
そのままプライマリの右に設定されてるときはプライマリの解像度を得たら分かるけど 左,上,下とか微妙にずらして斜め上とかにも設定できちゃうので困ってます。
- 123 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 04:10:47 ]
- GetMonitorInfo
- 124 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 09:32:41 ]
- >>120
GDIで50fpsとか、馬鹿ですか?
- 125 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:27:25 ]
- 指定した日が祝日かどうかを調べるAPIを教えてくださいよ
- 126 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:33:08 ]
- >>125
面白くない。 もっとがんばりましょう。
- 127 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:35:49 ]
- >>125
ワロタwww腹痛ぇwwwww
- 128 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:50:56 ]
- BOOL WINAPI GetHoliday( time_t /* time */)
{ return TRUE; }
- 129 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:07 ]
- せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよ
- 130 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:57 ]
- ほら、滑ったw
- 131 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:20:09 ]
- 掲示板に僅か50秒で滑ったなんてレスするお前が滑ってるよ
- 132 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:31:08 ]
- どうでもいいよ
- 133 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:35:23 ]
- >>129 = >>131
笑わせてもらいました。
- 134 名前:129 mailto:sage [2009/02/05(木) 16:02:30 ]
- ありがとうございます。
- 135 名前:129 mailto:sage [2009/02/05(木) 16:05:19 ]
- 騙り乙
- 136 名前:129 mailto:sage [2009/02/05(木) 16:05:24 ]
- やめて下さい。知らないならレスしないで下さい。消えてください。
- 137 名前:129 mailto:sage [2009/02/05(木) 16:11:16 ]
- 暇人だな
- 138 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:15:00 ]
- 騙りが多いので酉つけました
- 139 名前:129 mailto:sage [2009/02/05(木) 16:20:27 ]
- 先に偽者にトリップ付けられたしw
- 140 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:40:54 ]
- >>139
偽物乙
- 141 名前:129 mailto:sage [2009/02/05(木) 16:42:15 ]
- しつこいw
- 142 名前:129 mailto:sage [2009/02/05(木) 16:43:08 ]
- 僕がイスラム歴の正月かどうかを調べるAPIです。
|

|