OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

WndProc( ) の UINT に msg を送る

  • 暇なときにでも
  • 質問No.200500
  • 閲覧数604
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 59% (194/328)

WM_KILLFOCUS とか WM_SIZE を送るにはどうしたらいいんですか?
例えば、リサイズしたら case WM_SIZE: のソースを実行できるけど
リサイズしていないのに case WM_SIZE: のソースを実行させたい
場合はどうしたらいいのかを知りたいです。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

通常は SendMessage() を使います。

例えば、フォーカスを失わせるのであれば、

SendMessage(editBox, WM_KILLFOCUS, 0, 0L);

という感じ。パラメータ wParam、lParam に何を設定すべきかは、マニュアルの Reference を
参照して決めます。


> リサイズしていないのに case WM_SIZE: のソースを実行させたい

は、実行させたい内容によりますが、あるタイミングで強制的にウィンドウのサイズを変更したい、と
いうことが目的であれば WM_SIZE メッセージを送るか MoveWindow() を使うべきです。
お礼コメント
A__

お礼率 59% (194/328)

SendMessage(editBox, WM_KILLFOCUS, 0, 0L);
で、case WM_KILLFOCUS: のソースが実行できました。
まだパラメータを知らないから、case 何とか: を
実行させることしかできなくてフォーカスは外せないけど。
SendMessage( ) の型と、UINT に msg を送る方法は
分かりました。

 case WM_SIZE:
  MessageBox(hWnd, "", "", MB_OK);
 break;
 case WM_MOVE:
  SendMessage(hWnd, WM_SIZE, 0, 0L);
 break;

これで、ウインドウを移動させたら case WM_SIZE: の
ソースを実行させることができました。
ありがとうございます。
投稿日時 - 2002-01-18 23:15:16
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 33% (33/98)

SendMessage API、PostMessage API を調べてみてください。通常はSendMessage APIを使用します。 ただ、もし、同じプログラム内から呼び出すのであれば、(この例の場合)WM_SIZEでの処理を関数にしておいて、それを呼び出す方が設計的には良いと思います。 ...続きを読む
SendMessage API、PostMessage API を調べてみてください。通常はSendMessage APIを使用します。
ただ、もし、同じプログラム内から呼び出すのであれば、(この例の場合)WM_SIZEでの処理を関数にしておいて、それを呼び出す方が設計的には良いと思います。
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
SendMessage( ) でできました。
投稿日時 - 2002-01-18 23:16:38


このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ