调用CDialog:Create步骤之后程序无法切换
调用CDialog::Create方法之后程序无法切换
各位朋友好:
我在VS2005中开发MFC程序,需要往Tab Control的选项卡中添加Dialog,用到了如下代码:
其中IDD_LISTDLG_DCRECORDCONTROLLEROCX是我要往TabControl中添加的Dialog,pServerInfo->m_listDlg是IDD_LISTDLG_DCRECORDCONTROLLEROCX对应的CDialog类的对象,m_mainTab是Tab Control对应类的对象。
问题如下:当加上这句话之后,程序运行时只要按Alt+Tab键切换程序,就再也切换不回来了。换句话说,程序只要失去焦点就完蛋,我尝试在程序中一直发出“蜂鸣音”,切换到其他程序之后蜂鸣音消失,很可能程序已经停止运行。去掉上面这句代码程序运行正常。
还有:这句代码由MFC ActiveX程序使用,而此ActiveX又被一个MFC程序调用。不知道跟这是不是也有关系?
看很多Tab Control的教程都用的这句代码,可是在我这里一直有问题。在网上找了好久,一直没能定位到真正的原因。只好麻烦各位大神了,十分感谢
------解决方案--------------------
把对话框的Border设置为None, Style设置为Child试试
如果这个对话框失去焦点了,在WM_LBUTTONDOWM消息中加上SetFocus(),这个对话就会重新获得焦点..具体在试试吧 这个问题么遇到过
各位朋友好:
我在VS2005中开发MFC程序,需要往Tab Control的选项卡中添加Dialog,用到了如下代码:
BOOL result = pServerInfo->m_listDlg.Create(
IDD_LISTDLG_DCRECORDCONTROLLEROCX, &m_mainTab);
其中IDD_LISTDLG_DCRECORDCONTROLLEROCX是我要往TabControl中添加的Dialog,pServerInfo->m_listDlg是IDD_LISTDLG_DCRECORDCONTROLLEROCX对应的CDialog类的对象,m_mainTab是Tab Control对应类的对象。
问题如下:当加上这句话之后,程序运行时只要按Alt+Tab键切换程序,就再也切换不回来了。换句话说,程序只要失去焦点就完蛋,我尝试在程序中一直发出“蜂鸣音”,切换到其他程序之后蜂鸣音消失,很可能程序已经停止运行。去掉上面这句代码程序运行正常。
还有:这句代码由MFC ActiveX程序使用,而此ActiveX又被一个MFC程序调用。不知道跟这是不是也有关系?
看很多Tab Control的教程都用的这句代码,可是在我这里一直有问题。在网上找了好久,一直没能定位到真正的原因。只好麻烦各位大神了,十分感谢
------解决方案--------------------
把对话框的Border设置为None, Style设置为Child试试
如果这个对话框失去焦点了,在WM_LBUTTONDOWM消息中加上SetFocus(),这个对话就会重新获得焦点..具体在试试吧 这个问题么遇到过