用如下代码1建立的非模态对话框不能通过对话框上的按钮关闭 而用代码2建立的模态对话框则可以。这是为什么啊??
//代码1
void Cok6410keyDlg::OnBnClickedButtonCloseKey()//button 单击事件
{
CPowerDownDlg *MyDialog = new CPowerDownDlg(this); //建立非模态对话框对象指针
MyDialog->Create(IDD_DIALOG1);//创建非模态对话框
MyDialog->ShowWindow(SW_RESTORE);//显示对话框
}
//代码2
void Cok6410keyDlg::OnBnClickedButtonCloseKey()//button 单击事件
{
CPowerDownDlg MyDialog; //定义模态对话框对象
MyDialog.DoModal(); //显示模态对话框
}
8 个解决方案
#1
如果你要创建非模式对话框的话,要关闭对话框,得添加WM_CLOSE消息,然后添加DestroyWindow()这一句代码就ok了
#2
只看到显示的代码,没看见关闭的代码啊
#3
chievement 但我在桌面上用vc++做的程序 不需要
WM_CLOSE消息,DestroyWindow()代码 也能关闭啊
WM_CLOSE消息,DestroyWindow()代码 也能关闭啊
#4
在CE下,千万不要去和PC上对比
本来就是两个不一样的东西,只是有点像
#5
楼主是做嵌入式CE的MFC吧,我在EVC里做过试验了,如果楼主是VS的话我不敢保证了,但是EVC我还是可以保证的,楼主要是觉得我的回复不正确,楼主不妨试试!
#6
是啊 在VC++6.0里是这样的不需要添加WM_CLOSE消息,但是EVC还是和VC++6.0有差别的
#7
确实 在ce 里需要DestroyWindow()函数,但我试了 在WM_CLOSE消息处理里调用也不行,在ok 和cancel button的事件程序里是可以的 谢谢chievement 给分
#8
具体怎么实现的么,我现在也遇到同样的问题
#1
如果你要创建非模式对话框的话,要关闭对话框,得添加WM_CLOSE消息,然后添加DestroyWindow()这一句代码就ok了
#2
只看到显示的代码,没看见关闭的代码啊
#3
chievement 但我在桌面上用vc++做的程序 不需要
WM_CLOSE消息,DestroyWindow()代码 也能关闭啊
WM_CLOSE消息,DestroyWindow()代码 也能关闭啊
#4
在CE下,千万不要去和PC上对比
本来就是两个不一样的东西,只是有点像
#5
楼主是做嵌入式CE的MFC吧,我在EVC里做过试验了,如果楼主是VS的话我不敢保证了,但是EVC我还是可以保证的,楼主要是觉得我的回复不正确,楼主不妨试试!
#6
是啊 在VC++6.0里是这样的不需要添加WM_CLOSE消息,但是EVC还是和VC++6.0有差别的
#7
确实 在ce 里需要DestroyWindow()函数,但我试了 在WM_CLOSE消息处理里调用也不行,在ok 和cancel button的事件程序里是可以的 谢谢chievement 给分
#8
具体怎么实现的么,我现在也遇到同样的问题