Я успешно зарегистрировал класс окна, используя 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
не равно нулю. Однако, когда я позже позвоню PostMessage
(из другого потока):
bool bPosted = ::PostMessage(m_hWnd, WM_APP + 3, 0, 0);
, хотя bPosted имеет значение true, оконная процедура не вызывается. Я пытаюсь понять, почему это должно быть. Оконная процедура - пример из MSDN - я намеревался добавить еще один случай, как только подтвердил, что сообщения проходили.
Какие условия должны быть выполнены для публикации оконного сообщения?