我用PostMesssage函数在实现线程间传递数据时,下面是我做的步骤,但是为什么消息响应函数不执行呢?在新建的线程(有CWinThread派生来)中,添加
CAuthorityServerDlg *Dlg=new CAuthorityServerDlg();
hWnd=Dlg->hWnd;
.......
::SendMessage(hWnd,MESSAGEGDATA,0,(LPARAM)ClientBuff);
//Sleep(20); //这句加不加都不输出
在头文件AuthorityServerDlg.h中定义#define MESSAGEGDATA WM_USER+1
afx_msg void ReceiveData(WPARAM wParam,LPARAM lParam);在CAuthorityServerDlg类中添加
ON_MESSAGE(MESSAGEGDATA,ReceiveData) void CAuthorityServerDlg::ReceiveData(WPARAM wParam,LPARAM lParam)
{
MessageBox("refsre");
}
但运行程序时为什么并没有MessageBox("refsre");的输出呀?
CAuthorityServerDlg *Dlg=new CAuthorityServerDlg();
hWnd=Dlg->hWnd;
.......
::SendMessage(hWnd,MESSAGEGDATA,0,(LPARAM)ClientBuff);
//Sleep(20); //这句加不加都不输出
在头文件AuthorityServerDlg.h中定义#define MESSAGEGDATA WM_USER+1
afx_msg void ReceiveData(WPARAM wParam,LPARAM lParam);在CAuthorityServerDlg类中添加
ON_MESSAGE(MESSAGEGDATA,ReceiveData) void CAuthorityServerDlg::ReceiveData(WPARAM wParam,LPARAM lParam)
{
MessageBox("refsre");
}
但运行程序时为什么并没有MessageBox("refsre");的输出呀?
解决方案 »
- 如何判断通讯接收的是一组完整的数据
- (实在没分了,理解万岁}怎么在局域网内广播,告诉我是服务器,客户端要怎么能才收到这个广播消息,并知道这个广播消息是哪个IP发来的
- 请推荐一本初学OpenGL的好书
- 执行fstream.open()打开一个文件后,无论是否is_open()==true,最后都要执行close()?
- error C2065: 'WSACreateEvent' : undeclared identifier,前段时间还是好的,今天却编不过啦,帮我啊
- error C2065: 'WSAPROTOCOL_INFO' : undeclared identifier
- 100分 求一个能浏览图片的MDI程序!!!
- 使用COM的问题
- 一个小问题,请各位大侠指教
- 怎样在VC++程序中实现从ISA卡上输入输出数据
- SetBitmapBits显示位图问题
- 请问VS2005中 配置属性->常规->字符集中 Unicode和多字节字符有什么区别
hWnd=Dlg->hWnd;
这两句代码之间有没有调用Create之类的函数创建窗口?
不然,hWnd得到的是一个无效句柄
afx_msg LRESULT ReceiveData(WPARAM wParam,LPARAM lParam); LRESULT CAuthorityServerDlg::ReceiveData(WPARAM wParam,LPARAM lParam)
{
MessageBox("refsre");
return 0;
}
之后必须调用Create函数创建窗口
CAuthorityServerDlg *Dlg=new CAuthorityServerDlg();
hWnd=Dlg->hWnd;
.......
::SendMessage(hWnd,MESSAGEGDATA,0,(LPARAM)ClientBuff);
//Sleep(20); //这句加不加都不输出
在头文件AuthorityServerDlg.h中定义#define MESSAGEGDATA WM_USER+1
afx_msg void ReceiveData(WPARAM wParam,LPARAM lParam);
hWnd=Dlg->hWnd;
===========
窗口出来了吗?在::SendMessage(hWnd,MESSAGEGDATA,0,(LPARAM)ClientBuff); 之前先判断一下hWnd是不是有效的吧!