首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-05 
[求助]关于两个应用程序间的通讯postmessage是向windows message queue 发送消息的吧?我写了两个测试的对

[求助]关于两个应用程序间的通讯
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); 

热点排行