我定义了2个对话框类,CDlg1和CDlg2,单击对话框1中的一个按钮会显示对话框2。我在按钮函数中调用了WSAAsyncSelect()
具体如下:
.......
.......
CDlg2 dlg2;
WSAAsyncSelect(cskt,dlg2.m_hWnd,WM_SOCK,FD_READ);
dlg2.DoModal();
..........但是这样的dlg2.m_hWnd并不能让dlg2接收到消息,大侠能告诉我这种情况下接收消息的窗口句柄该如何确定吗?
具体如下:
.......
.......
CDlg2 dlg2;
WSAAsyncSelect(cskt,dlg2.m_hWnd,WM_SOCK,FD_READ);
dlg2.DoModal();
..........但是这样的dlg2.m_hWnd并不能让dlg2接收到消息,大侠能告诉我这种情况下接收消息的窗口句柄该如何确定吗?
解决方案 »
- 菜鸟提个不解的问题,刚刚接触MFC
- 关于BCGControlBarPro.MDI.container加载word2007出现的问题
- 求教一个编程问题
- 我向导生成单文档,就在第六步选基类是CRichEditView,然后运行,居然出现运
- 限制程序当前只有一个运行实例,怎么做比较好?
- 求一个滚动字幕类,希望也可以支持图片滚动的.....^_^请大家帮忙了
- 控件安全性方面的问题?DllRegisterServer调用时,"CLSID_SafeItem"是什么,又在哪里定义的呢?
- 我现在在界面中画图时出现闪耀问题,遇到过此问题的请进来看看!
- 求多线程网络通信例子!!!
- 如何把listbox中的内容写入word中啊??
- 请高手进来,关于注册DLL
- vc中资源编辑器得问题:请教
所以你要么把dlg2做成非模态对话框,在调用对话框的Create()之后,再调用WSAAsyncSelect()。或者,你把WSAAsyncSelect()的调用放在CDlg2类的实现中,可以在重载的InitDialog中。
默认的ok或cancel按扭会调用父窗口的OnOk或OnCacel函数,这两个函数都会销毁窗口,所以在默认状态下,你一旦点了这两个按钮后就不能接收消息了,当然你可以重载它们。
我的程序是基于对话框的聊天室(客户端),用到了2个对话框,一个是登录窗口,另一个是聊天窗口。进入聊天室前先登录,在聊天室的对话框里有注销和重新登录的按钮,问题就出在重新登录上,我点重新登录按钮后弹出登录对话框,但是点ok按钮登录对话框关闭了,但聊天室窗口却从此没有焦点了,好像死了一样。所以我怀疑是WSAAsyncSelect(cskt,m_hWnd,WM_SOCK,FD_READ);这个函数除了问题,谁能帮我,出出思路也很好。