获取不到消息隐藏界面

我辣椒哥 2014-12-25 05:29:32
BOOL CScreenClientDlg::OnInitDialog()
{
........................
if(SOCKET_ERROR==::WSAAsyncSelect(m_Socket,m_hWnd,CM_RECEIVED,FD_READ))
{
MessageBox("注册网络事件失败!");
}
m_iRecvCount=1;

return TRUE;
}
#define CM_RECEIVED WM_USER+1001

ON_MESSAGE(CM_RECEIVED,OnReceived)

void CScreenClientDlg::OnReceived()
{
int ret = recvfrom(m_Socket,(char*)buffer,MAX_BUFF,0,(sockaddr*)&m_Addr,&factsize);
}

但CM_RECEIVED没消息是隐藏界面ShowWindow(SW_HIDE);
但CM_RECEIVED有消息是显示界面ShowWindow(SW_SHOW);

问题是如何获得CM_RECEIVED消息状态
...全文
191 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2014-12-26
  • 打赏
  • 举报
回复
是不是窗口进程已经退出了?
allenhiman 2014-12-26
  • 打赏
  • 举报
回复
楼主的语文不是我教的...
cfanandhacker2 2014-12-26
  • 打赏
  • 举报
回复
要想获得CM_RECEIVED消息状态 所以隐藏界面ShowWindow(SW_HIDE)非但有CM_RECEIVED消息 并且显示界面ShowWindow(SW_SHOW)所以也有CM_RECEIVED消息 主要是无论显示界面并且不显示界面,按理来说除非数据发送过来, 而不是都会存在CM_RECEIVED消息被接受到,OnReceived()所以被调用 懂了吧
schlafenhamster 2014-12-26
  • 打赏
  • 举报
回复
本函数用来请求Windows Sockets DLL为窗口句柄发一条消息-无论它何时检测到由lEvent参数指明的网络事件.要发送的消息由wMsg参数标明.被通知的套接口由s标识.本函数自动将套接口设置为非阻塞模式.
vocanicy 2014-12-26
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
#define CM_RECEIVED WM_USER+1001 是个自定义消息, 要你自己发才行 (SendMessage( CM_RECEIVED , b_Received,0);
别乱说,明明是将自定义消息捆绑了Socket事件 另外楼主表达能力真的有问题,看不懂 但CM_RECEIVED没消息是隐藏界面ShowWindow(SW_HIDE); 但CM_RECEIVED有消息是显示界面ShowWindow(SW_SHOW); 问题是如何获得CM_RECEIVED消息状态
schlafenhamster 2014-12-26
  • 打赏
  • 举报
回复
#define CM_RECEIVED WM_USER+1001 是个自定义消息, 要你自己发才行 (SendMessage( CM_RECEIVED , b_Received,0);
笨笨仔 2014-12-25
  • 打赏
  • 举报
回复
引用 1 楼 tianmeshi 的回复:
有没有人看看
估计是看不明白
我辣椒哥 2014-12-25
  • 打赏
  • 举报
回复
有没有人看看

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧