我已经使用以下方法成功注册了一个窗口类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 为真,窗口过程也不会被调用。我正在努力弄清楚为什么会这样。窗口过程是MSDN 示例中的一个- 一旦我确认消息通过,我打算添加另一个案例。
发布窗口消息需要满足哪些条件?