- 1 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:33:42 ]
- スレ立てるまでもない、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質問箱 Build65 pc11.2ch.net/test/read.cgi/tech/1208847084/
- 266 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:52:02 ]
- な ん で ( ´∀` ) や ね ん !
- 267 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:31:48 ]
- プロシージャならメッセきたら処理するけど
コンソールの場合はどうやるのか気になって
- 268 名前:デフォルトの名無しさん [2008/05/23(金) 13:12:02 ]
- CreateWindowでスタティックテキストを作りました。
テキストの背景色を透過したいんだけど、いい方法ありませんか? hStatic = CreateWindowEx(0, "STATIC", cString, WS_VISIBLE | WS_CHILD | SS_SIMPLE, X, Y, Width, Height, hWnd, (HMENU)Static, (HINSTANCE)hInst, NULL);
- 269 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:20:55 ]
- WS_EX_TRANSPARENTじゃダメ?
- 270 名前:268 mailto:sage [2008/05/23(金) 13:31:00 ]
- >>269
ダメでした。。 レバーコントロールに入れたツールバーにスタティックテキスト置いてます。 hStatic = CreateWindowEx(WS_EX_TRANSPARENT, "STATIC", cString, WS_VISIBLE | WS_CHILD | SS_SIMPLE, X, Y, Width, Height, hWnd, (HMENU)Static, (HINSTANCE)hInst, NULL);
- 271 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:39:40 ]
- ツールバー、もしくはメニューの背景にブラシを使う事は出来ますか?
- 272 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:40:07 ]
- WM_CTLCOLORSTATICでNULL_BRUSHを返す
- 273 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:12:15 ]
- あるプロセスが、自分を起動したプロセス(親プロセス)を知る方法はありますか。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:20:00 ]
- ある
- 275 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:21:19 ]
- レバーじゃなくてリバーだと思う
- 276 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:23:18 ]
- "レバーコントロール" の検索結果 約 1,270 件中 1 - 10 件目 (0.13 秒)
"リバーコントロール" の検索結果 約 185 件中 1 - 10 件目 (0.13 秒)
- 277 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:27:41 ]
- >>276
それ「レバー」「コントロール」別単語として検索した結果だから
- 278 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:27:45 ]
- どっちもすくな!
- 279 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:28:42 ]
- リバーコントロールでググると
もしかして: レバーコントロール と出るなw
- 280 名前:268 mailto:sage [2008/05/23(金) 14:28:43 ]
- >>272
どうも。WM_CTLCOLORSTATICメッセージ勉強してみます。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:41:49 ]
- >>277
馬鹿
- 282 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:02:53 ]
- レバー ReBar に一致する日本語のページ 約 268 件中 1 - 30 件目 (0.03 秒)
リバー ReBar に一致する日本語のページ 約 277 件中 1 - 30 件目 (0.24 秒)
- 283 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:28:05 ]
- rebarの発音はrí:bà:rだからリバーと読む方が実際の発音に近い
つまりレバーと読みたいならパーチーとかボデーとか言ってろってこった
- 284 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:33:15 ]
- ↑アホ
- 285 名前:デフォルトの名無しさん [2008/05/23(金) 15:35:16 ]
- ↑話を理解してない馬鹿
- 286 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:36:33 ]
- ReBarをレバーっていうのは斬新だなw
- 287 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:39:09 ]
- ↑馬鹿
- 288 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:40:32 ]
- >>281=>>284=>>287=大馬鹿
- 289 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:41:46 ]
- ↑はずれ
- 290 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:43:10 ]
- >>281,>>284,>>287∈大馬鹿
という意味だろ さすが大馬鹿
- 291 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:45:37 ]
- レバーという表現は日本語としても定着してるんだからいんじゃね?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:49:00 ]
- >>290
はずれ
- 293 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:51:19 ]
- 意味が通じるなら、それでおk。
- 294 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:59:11 ]
- >>291
定着していません。 ほとんどの日本人はレバーと聞くと肝臓の事だと認識します。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:05:50 ]
- 取っ手(lever)と認識する人も居るよ
- 296 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:09:36 ]
- ReをReTryとかのReって解釈する人もいる
- 297 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:11:51 ]
- Win API ReBar レバー 11件
Win API ReBar リバー 100件 Yahoo
- 298 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:13:41 ]
- ↑全角数字馬鹿
- 299 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:17:03 ]
- >>296
語源的には同じ
- 300 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:17:51 ]
- うーん、、、全角数字の時点で言い訳できないな
- 301 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:19:22 ]
- ほとんどの日本人はリバーと聞くと川の事だと認識します。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:23:40 ]
- ReBarって書けばいいんだよ
カタカナ読みに拘ると面倒事になるだけだ
- 303 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:27:03 ]
- このスレで「リバー」だとriverよりはrebarだろう。
このスレで「レバー」だとliverやleverよりは「rebarのことなんだろうなぁ」だろう。
- 304 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:27:55 ]
- ↑話を理解してない馬鹿
- 305 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:35:18 ]
- え?あれ取っ手付いてるからレバーなんだと思ってたよ
別モノだったのかw
- 306 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:44:39 ]
- msdn.microsoft.com/ja-jp/library/cc399282.aspx
では一応「リバー コントロール」でも他のページに見当たらない
- 307 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:44:40 ]
- BitBltやStretchBltで表示した画像が解像度を変更すると消えてしまい困っています。
WM_DISPLAYCHANGEでWM_PAINTを投げたりInvalidateRectを投げたりしましたが再描画されません。 SW_MINIMIZEとSW_NORMALを立て続けに投げる方法は表示される時とされない時があり駄目なようです。 どうすれば解像度変更直後にきちんと再描画出来るようになるのでしょうか。
- 308 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:52:59 ]
- おっ!質問きたぞ
雑談はこれまでだ
- 309 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:55:21 ]
- >>307
WM_PAINTで描画してるんだよな? 再描画されないことは無いと思うが、いったいどうやってんの? 再描画されないとは具体的にどうなんのの? >WM_PAINTを投げたり まあこれ見て怪しいのはわかるが。
- 310 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:01:56 ]
- InvalidateRectの後にUpdateWindow呼んでる?
- 311 名前:309 mailto:sage [2008/05/23(金) 17:02:18 ]
- 一応書いておくけど
WM_PAINTを投げたくなったら、 InvalidateRect → UpdateWindow のコンボで。 InvalidateRect自体は投げてるみたいだから、この場合は解決策じゃないけど。
- 312 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:10:39 ]
- >>311
RedrawWindowにRDW_UPDATENOWを指定すればいい
- 313 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:17:34 ]
- なんちゃってAI作った人いる?
- 314 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:21:43 ]
- >>313
const char* msg[] = { "↑話を理解してない馬鹿", "知らないならレスしないでください", "それぐらい察してほしかったってのが本音" }; for(;;) post2ch(msg[rand()%3]);
- 315 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:32:59 ]
- >>313
スレタイ
- 316 名前:307 mailto:sage [2008/05/23(金) 18:17:10 ]
- InvalidateRect(hWnd, NULL, FALSE);
UpdateWindow(hWnd); RedrawWindow(hWnd, NULL, NULL, RDW_UPDATENOW); これらを投げても駄目でした。 画像のみを表示するソースはウィンドウを透過すれば(SetLayeredWindowAttributes)特に何もしなくても表示されました。 透過しないとやはり何も表示されません。 CreateWindowExでボタン、ステータスバー、ツールチップを追加している問題のソースではこれらコントロールは再描画されるのに画像が表示される場所はまるで非表示にしたかのように背景色のみになっています。 もう訳が分からないですo...rz。 もしかしたらウィンドウプロシージャの書き方に問題があるのかも知れませんが、以下の各caseのbreak;をreturn 0;に書き換えると何故かウィンドウの挙動も表示もおかしくなり、CPU使用率も100%になってしまいます。 因みに今回の場合はreturn 0;に書き換えても症状は改善しません。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { (中略) case WM_PAINT: SetStretchBltMode(hDC, STRETCH_DELETESCANS); StretchBlt(hDC, 10, 10, 256, 192, hCompatDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); break; (中略) } return DefWindowProc(hWnd, msg, wp, lp); }
- 317 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:25:29 ]
- >>316
・・・BeginPaintとEndPaintは・・? hDCはどこからきたの?
- 318 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:28:02 ]
- やはり怪しかったのね
- 319 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:34:01 ]
- >>317が正解だな
的を射ている
- 320 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:44:10 ]
- WM_PAINTでBegin/EndPaint忘れって上にもあるし前スレにもあったな
いったい何を見て勉強してるんだ?
- 321 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:45:07 ]
- 猫だろ。どうせ。
- 322 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:04:37 ]
- 犬希望
- 323 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:18:07 ]
- WM_PAINTワンBeginPaintワンワン
- 324 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:19:40 ]
- MFC使えとまでは言わないけど、コンストラクタ・デストラクタでBegin/EndPaintをラップした
クラス程度は作っておくと便利よ。
- 325 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:27:38 ]
- それならOnPaintをオーバーライドするだけで描画できるクラスを作った方が遥かに便利
- 326 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:30:54 ]
- CpaintDC と OnDraw ですね
- 327 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:33:07 ]
- つうか今時MFCやWTLを使わずに素のWin32SDKでアプリ作る奴なんているの?
死ぬほど面倒じゃん
- 328 名前:316 mailto:sage [2008/05/23(金) 19:39:21 ]
- static PAINTSTRUCT ps;
(中略) BeginPaint(hWnd, &ps); SetStretchBltMode(hDC, STRETCH_DELETESCANS); StretchBlt(hDC, 10, 10, 256, 192, hCompatDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); EndPaint(hWnd, &ps); return 0; にしたら正常に表示されました。本当にありがとうございました。 一見正常に動いていたのはDefWindowProcに処理を回していたからなんですね。 因みに参考にしたサイトはこちらです。 Programing Place ttp://www.geocities.jp/ky_webid/index.html >>324-327 VC++2008EEでC及びC++の勉強中です。 まだC++はまともに使えないのでクラスの使い方も(VB.NETやC#はともかく)分かりません。 今後の課題としてクラスの勉強を始めようと思います。
- 329 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:43:13 ]
- そのサイトにも、
>描画の処理を行うとき、必ずBeginPaint()とEndPaint()を使って、描画処理を挟み込む形を取っていましたが、これは必ずそうしなければなりません。 って書いてるじゃん
- 330 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:44:22 ]
- >>328
そこ、前スレにもトンデモサイトとして出てたよ 特にこれ ttp://www.geocities.jp/ky_webid/win32c/022.html 以下を次スレからテンプレ化キボン ●参考すべきでない所 Programing Place ttp://www.geocities.jp/ky_webid/index.html
- 331 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:44:23 ]
- >>328
志村!足りない!足りない!
- 332 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:45:32 ]
- と思ったら、BitBltのあたりでいきなりはしょってるなw
- 333 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:46:42 ]
- "Programing"の時点で糞確定だけどな
- 334 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:47:04 ]
- >>328
hDCはBeginpaintの戻り値かps.hdc 使う
- 335 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 06:15:24 ]
- 本当の所、BeginPaintを必ず使わなければいけないという決まりはない。
ただ、これ一回の呼び出しで行われる処理内容を考慮すると、使わない理由が無いな。
- 336 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:17:06 ]
- >>330
それよりお勧めサイト書いてくれたほうがうれしい
- 337 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:52:52 ]
- >>336
英語版MSDN
- 338 名前:デフォルトの名無しさん [2008/05/24(土) 10:56:51 ]
- 調べても分からなかったので質問させてください
CreateMenuでよくアプリケーション上部にあるFile(F)とか表示(V)のようなメニュー作成しています。 メインウィンドウのサイズを変更したとき、Menuのサイズを変更しないようにしたいです。 メニューの横幅固定で。この場合、メニューサイズを固定するAPIか、メニューの構造体に横幅指定することができるとか 方法がありましたら、ご教示ください。よろしくおねがいします。 環境はVC + SDKです。
- 339 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:58:48 ]
- 無理
- 340 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:35:06 ]
- ツールバーで代用するとか
苦労の割に見返りがサイズ固定だけって泣けるけど
- 341 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:44:03 ]
- 標準と違う動きをするアプリって違和感があるよね。
- 342 名前:338 mailto:sage [2008/05/24(土) 11:48:09 ]
- 単刀直入に言うと、ウィンドウサイズ変更時にメニューのちらつきをなくしたいです。
勉強中なので間違ってるかもしれないですが、CreateMenuで作成してもWNDCLASSEXで wc.lpszMenuName=MAKEINTRESOURCE( IDR_MENU);登録にしても、 結局はメインウィンドウの再描画に巻き込まれる形になるので、ちらつきます。 Janeとかのメニューはどうやって実現してるのかなぁ。。
- 343 名前:338 mailto:sage [2008/05/24(土) 12:54:04 ]
- もうちょっと考えて見ます
お騒がせしました。
- 344 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:57:53 ]
- >>341
IEのメニューはツールバーで出来てるが コマンドバーって呼ばれてる WTLにCCommandBarCtrlってクラスがあるけどこれはバグが多すぎてあまり使えない
- 345 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:20:04 ]
- >>344
CCommandBarCtrlのバグって例えばどんな?
- 346 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:09:32 ]
- >>345
とりあえず致命的なのを2点ほど メニューをクリックするとCommandBarにフォーカスを持って行かれる →フォーカスを元に状態設定を行っていると正常に機能しなくなる IEのようなReBar上で右クリックメニューを出すようなのを作っていると メニューが出ているときにメニュー項目上で右クリックすると落ちることがある →DoTrackPopupMenuに再入してしまうのが原因なので適当にフラグ立てて回避するしかない Donut系ブラウザはこの辺のバグを回避するためにCCommandBarCtrlを使っていない 俺もこの辺のバグを回避するためにDonutのソースを参考にして自作した
- 347 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:10:10 ]
- >>338
>メインウィンドウのサイズを変更したとき、Menuのサイズを変更しない ?? ウインドウを小さくした時メニューがはみ出してもいいの? 変なアプリーw
- 348 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:15:16 ]
- サイズ固定でシェブロン出すのよくあるけど。
- 349 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:15:46 ]
- 右端に >> を付けたいって事だろ
そういうのはコマンドバーって言うんだよっていうのが以後の流れ
- 350 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:40:07 ]
- APIの話では無いのでスレ違いだと思いますが
Windows XPで外部信号に対して±10mS程度以内で 応答を返すことは可能なのでしょうか?
- 351 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:51:28 ]
- エスパーじゃないしマイナスは厳しいんじゃないか。
- 352 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:26:25 ]
- え、-10ms以内で応答を返せないの?
近頃のWindowsは糞だなぁ
- 353 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:31:12 ]
- さすがのWINDOWSでも、時をかけるのは難しいんじゃないか?
- 354 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:53:26 ]
- 待ってられない信号がある。
それはさておき、「何らかのインターネット接続が存在するかどうか」を知る方法はありますか? 今は自分のグローバルIPアドレスに対してpingを打っているのですが、激しく間違っている気がします。
- 355 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:58:33 ]
- それはすれ違いじゃないか?
ネットワーク相談室の方がいい気がする。。
- 356 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:05:24 ]
- Network Managementで接続を列挙するとか
wininetでonline/offlineをとるとか
- 357 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:31:55 ]
- wininet.dll が使えるなら(というか使えない環境のほうがレアだろうが)、
InternetGetConnectedStateEx だろう。
- 358 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:50:12 ]
- >>357
インターネット環境が無いと使えない某ソフトが確かそのAPIでチェックしてたような 勿論nopで埋めうわ何をするやmくぁwせdrftgyふじこlp
- 359 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:02:39 ]
- >>358
日本語でそっち関連の情報を提供してるとこある? 中国語とかならわんさかあるんだけど...
- 360 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:06:37 ]
- そんな物自分で勉強しろよ
スレ違いな上にグレーゾーンな事をここで聞くな馬鹿
- 361 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:09:26 ]
- >>359
英語を苦にしないならMSDN。 ていうか、なんで日本語版にはwininet関数が載ってないんだ。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:22:47 ]
- 昔はWinAPIの日本語ヘルプが付いてたのに、今やWin95時代から更新止まってる古い情報しか無いのはどうよ
そもそもMSKBですら最近は機械翻訳だらけだし、中国語とかの方が翻訳されてるなんておかしい もう日本のIT技術者は世界から見捨てられてるという事?
- 363 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:23:14 ]
- >>350
デバイスドライバならともかく、 一介のアプリケーションで100%確実の保証は絶対無理だな。
- 364 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:24:59 ]
- >>362
おかげで、英語を読むことの抵抗感がなくなったから感謝しているw 日本のIT技術者はもっと世界に羽ばたけということだよ。
- 365 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:26:49 ]
- >>362
正解
- 366 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:32:43 ]
- まぁIMEが中国で開発されてるぐらいだから仕方ないか
日本のプログラマはもう用済みなんだろうな
|

|