非模式对话框突然消失了,在线等!

xuyunqq 2005-07-15 08:32:16
请问各位:
我生成了一个非模式对话框,然后隐藏它(ShowWindow(SW_HIDE)),接着,我点击菜单的某个选项来显示它(ShowWindow(SW_SHOW)),这时候,如果我点击任务栏的这个程序的按钮让它最小化后再点击让它最大化后,对话框显示的,如果我点击对话框的关闭按钮后,再点击菜单的相应选项再显示这个对话框后,对话框也是能够显示的,如果此时,我按照前面的步骤,再点击任务栏的这个程序的按钮后最小化后,再点击让它最大化,此时,奇怪的事情发生了,刚才的对话框不见了,我这时候再点击菜单的相应选项后,它又显示了,不知这是什么原因,刚才的对话框为什么无缘无故地就没有了呢?(我程序很简单,就这么些代码),是不是和我刚开始对话框的创建有关系呢?(对话框类的实例.create(ID号,主框架指针))还是其它什么原因呢,希望大家帮帮忙,谢谢了!
...全文
281 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xift_2008 2005-07-15
  • 打赏
  • 举报
回复
调用的是CDialog:OnClose()啊
------------------------------
CDialog:OnClose()---???
linestyle 2005-07-15
  • 打赏
  • 举报
回复
帮你up
xuyunqq 2005-07-15
  • 打赏
  • 举报
回复
调用的是CDialog:OnClose()啊
xift_2008 2005-07-15
  • 打赏
  • 举报
回复
只调用HIDE,SHOW的话对话框只是隐藏,显示;
如果调用了OnClose函数,将给对话框发送WM_DESTROY消息,关闭对话框...
goodboyws 2005-07-15
  • 打赏
  • 举报
回复
为什么要调用父类的OnClose,这种用法不合理,如果父类是主框架的话,窗口应该退出啊
goodboyws 2005-07-15
  • 打赏
  • 举报
回复
你的任务栏按钮是主框架的按钮,不是这个非模式对话框的按钮
Kudeet 2005-07-15
  • 打赏
  • 举报
回复
父类的OnClose把子窗口给关闭了
xuyunqq 2005-07-15
  • 打赏
  • 举报
回复
我把onClose函数里的调用父类的OnClose函数改成了隐藏就没这个问题了,请问这又是什么原因呢,父类的OnClose函数究竟做了什么工作呢
agchen81 2005-07-15
  • 打赏
  • 举报
回复
不会是不见了吧,可能只是没有获得当前窗口的焦点吧。就是说在其他窗口的后面了。
你的对话框在任务栏上是不是没有显示的。你可以将属性改为在任务栏上有显示的再看看。或写个小程序,检查一下看不见的时候对话框是否存在。查找对话框最简单的办法是查找对话框的标题栏。你找一下代码吧。应该很好找。
Zhymax 2005-07-15
  • 打赏
  • 举报
回复
create(ID号,GetDesktopWindow()); // 改成桌面试试
CodeKey 2005-07-15
  • 打赏
  • 举报
回复
再点击任务栏的这个程序的按钮后最小化后,再点击让它最大化,此时,奇怪的事情发生了,刚才的对话框不见了,我这时候再点击菜单的相应选项后,它又显示了,不知这是什么原因
--------------------------------

很明显你的主对话框挡住了那个对话框,也就是那个对话框没有获得焦点..

你可以将这个对话框设置为topmost,那么就不会看不见了

或者设置为子窗体模式就可以看见了
waker615 2005-07-15
  • 打赏
  • 举报
回复
重载CDialog:OnClose();
改写为窗口隐藏的代码.

15,976

社区成员

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

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