を使用してウィンドウ クラスを正常に登録し、次を使用しRegisterClassEx
てウィンドウを作成しましたCreateWindowEx
。
m_hInstance = ::GetModuleHandle(NULL);
...
m_hWnd = ::CreateWindowEx(0, "CMyClassName", "Message Window", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, m_hInstance, 0);
関連付けられたウィンドウ プロシージャはメッセージ 36、129、131、および 1 を受け取り、返された値HWND
は null ではありません。ただし、後でPostMessage
(別のスレッドから)呼び出すと:
bool bPosted = ::PostMessage(m_hWnd, WM_APP + 3, 0, 0);
bPosted が true であっても、ウィンドウ プロシージャは呼び出されません。私はなぜそれが必要なのかを理解しようとしています。ウィンドウ プロシージャはMSDN の例のものです。メッセージが通過していることを確認したら、別のケースを追加するつもりでした。
ウィンドウメッセージが投稿されるためには、どのような条件を満たす必要がありますか?