对话框的奇怪问题,向高手求救 我做了一个基于对话框的程序,在点击一个按钮时弹出另一个对话(这个对话框已在主对话框的头文件中创建对象),用的是DoModal(),可弹出的对话框只是使程序运行停在这条语句,等待我关闭对话框,但我却仍可使主对话框获得焦点。也就是说我仍能操作主对话框上的按钮,但我肯定DoModal()后的语句尚未运行。请指点迷津。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if(dlg.DoModal()==IDOK){AfxMessageBox("ok");} 如果是非模式对话框,为什么DoModal()后的语句没有继续执行,一定要我关闭这个对话框后才执行呢? 这是原码: if(mAddUnitDlg.DoModal()==IDOK) { UnitList *tmppUnitList; if(!mUnitManagerInstance.AddUnit((const char*)(mAddUnitDlg.IPAddr), mAddUnitDlg.UName, &tmppUnitList)) MessageBox("指定的设备不在线或地址有误", "没找到"); else { if(NULL == pUnitList) pUnitList = tmppUnitList; InsertUnit(tmppUnitList); m_UnitTree.Invalidate(); } }弹出对话框后,主窗口仍可获得焦点,我可以再按主窗口上的按钮来弹出其它窗口。 ....OnButton1(){ CMyDialog dlg; if(IDOK==dlg.DoModal()){ 将dlg.data传给主对话框}举例颜色对话框....OnButton1(){ CColorDialog dlg; if(IDOK==dlg.DoModal()){ color=dlg.GetColor();}} 试一下在弹出那个对话框前调用ReleaseCapture 我只想弹出模式对话框后,在操作者关闭该对话框前不能进行其他操作,就象通常的About对话框。而我这个基于对话框的程序就连VC自动生成的About对话框都是这样,你不会说About对话框不是模式对话框吧!但弹出About对话框后,我仍可操作主窗口。 to:fenex(爱看DVD)不行。问题应该是出在了主对话框上,因为系统自动生成的About对话框都失灵了。 多谢各位帮助,问题在我。我为了让程序在启动后只在托盘上有个小图标,所以重载了DefWindowProc(),并在里面加入了如下代码: if(message==133 && !isshow) { EnableWindow(FALSE); ShowWindow(SW_HIDE); } else { EnableWindow(TRUE); //就是它的错 }其实已经不可见也就不必使窗口失效了。只是当初有个可笑想法,现在想来有点傻:我不想让别人用程序通过标题找到我的程序已隐藏的主窗口来显示出来操作。其实能把窗口得到就自然可以使它有效,要防止应该在程序内部设一个标志变量来验证当前是否是已登录状态就可以了。现在我也知道了,当弹出一个模式对话框时,系统隐藏的调用了使其父窗口失效的指令。再次感谢各位,结贴。 不可思议的内存泄露!! 无线访问数据库 树型数据如何保存,并在网络中传送 问题: error LNK2019: 无法解析的外部符号 不知错在何方 GetLocalTime()获得时间的问题(解决完给分) 我加了一个picture控件, 用它作完全窗体的背景, 现在我要加一个tab控件,但tab老是跑到后面去,应该怎么做的啊. 关于数据库的问题,盼回答!谢谢! 为什么消息映射要用宏而不是虚函数? 注册表中存储和读取数值型数据? 高分求助一个简单的问题 关于多文档
{
AfxMessageBox("ok");
}
if(mAddUnitDlg.DoModal()==IDOK)
{
UnitList *tmppUnitList;
if(!mUnitManagerInstance.AddUnit((const char*)(mAddUnitDlg.IPAddr), mAddUnitDlg.UName, &tmppUnitList))
MessageBox("指定的设备不在线或地址有误", "没找到");
else
{
if(NULL == pUnitList)
pUnitList = tmppUnitList;
InsertUnit(tmppUnitList);
m_UnitTree.Invalidate();
}
}弹出对话框后,主窗口仍可获得焦点,我可以再按主窗口上的按钮来弹出其它窗口。
{
CMyDialog dlg;
if(IDOK==dlg.DoModal())
{
将dlg.data传给主对话框
}
举例颜色对话框
....OnButton1()
{
CColorDialog dlg;
if(IDOK==dlg.DoModal())
{
color=dlg.GetColor();
}}
不行。
问题应该是出在了主对话框上,因为系统自动生成的About对话框都失灵了。
我为了让程序在启动后只在托盘上有个小图标,所以重载了DefWindowProc(),并在里面加入了如下代码:
if(message==133 && !isshow)
{
EnableWindow(FALSE);
ShowWindow(SW_HIDE);
}
else
{
EnableWindow(TRUE); //就是它的错
}其实已经不可见也就不必使窗口失效了。
只是当初有个可笑想法,现在想来有点傻:我不想让别人用程序通过标题找到我的程序已隐藏的主窗口来显示出来操作。其实能把窗口得到就自然可以使它有效,要防止应该在程序内部设一个标志变量来验证当前是否是已登录状态就可以了。现在我也知道了,当弹出一个模式对话框时,系统隐藏的调用了使其父窗口失效的指令。再次感谢各位,结贴。