读书人

[]关于两个应用程序间的通讯

发布时间: 2012-02-05 12:07:14 作者: rapoo

[求助]关于两个应用程序间的通讯
postmessage是向window's message queue 发送消息的吧?
我写了两个测试的对话框程序A和B,当中定义了一个自定义消息:
#define WM_MYMESSAGE (WM_USER + 100)
在A中当按下按键就会触发:PostMessageW(WM_MYMESSAGE,NULL,NULL);

之后再在B中定义个一个消息映射:
BEGIN_MESSAGE_MAP(CTestADlg, CDialog)
ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
END_MESSAGE_MAP()

LONG CTestBDlg::OnMyMessage(WPARAM w,LPARAM l)
{
MessageBoxW(L"Test!!!", NULL, MB_OK);

return S_OK;
}

为什么当在A中按下按键后B什么反应都没有…………是不是还缺少了些什么东西?

[解决办法]
PostMessageW(B的窗口句柄,WM_MYMESSAGE,NULL,NULL);
[解决办法]
没有传窗口的句柄....
[解决办法]

C/C++ code
PostMessageW(WM_MYMESSAGE,NULL,NULL); 你这样是发到A窗口自己去了要发到B窗口,要用API,BOOL PostMessage(   UINT message,   WPARAM wParam = 0,   LPARAM lParam = 0 ) throw();而不能用CWnd::的BOOL PostMessage(   UINT message,   WPARAM wParam = 0,   LPARAM lParam = 0 );要这样hWnd = B窗口的HWND::PostMessageW(hWnd, WM_MYMESSAGE,NULL,NULL); 

读书人网 >C++

热点推荐