能不能弹出多个模式对话框

sumjohn 2005-01-27 12:38:58
我的主对话框要弹出对话框1,然后再由对话框1弹出对话框2,我如果在对话框1的OnInitDialog()里调用对话框2的Domodal(),则只有在对话框2关掉之后才会弹出对话框1,如果重写对话框1的Domodal(),在里面调用对话框2的Domodal(),则只有关掉对话框1后才会弹出对话框2,有没有方法在不使用无模式的情况下可以两个同时弹出?
...全文
191 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
eachout 2005-01-30
  • 打赏
  • 举报
回复
重写窗口1的代码,在里面调用窗口2。没有别的办法。
shanhujiao_2000 2005-01-29
  • 打赏
  • 举报
回复
不知为什么,只是感觉有些乱
社会栋梁 2005-01-29
  • 打赏
  • 举报
回复
可以,我上次用键盘钩子触发模式对话框
当时按几下出几个根本不用结束当前的模式对话框
sumjohn 2005-01-28
  • 打赏
  • 举报
回复
用多线程可以实现,多谢高手指点
louifox 2005-01-28
  • 打赏
  • 举报
回复
开多个线程就可以弹出多个模式对话框了
zhufeng98 2005-01-28
  • 打赏
  • 举报
回复
两种方案:
1、在对话框1的OnInitDialog()里面先调用Redrawwindow,然后domodal对话框2!
2、对话框1中定义一个布尔量,然后在OnPaint()里根据布尔量调用一次domodal对话框2!
windyhui 2005-01-28
  • 打赏
  • 举报
回复
不行吧
bobob 2005-01-27
  • 打赏
  • 举报
回复
你的要求就和模式对话框有冲突
既然是最上面,又怎么会有两个?
不会~~帮你up~~:)
yuhan_0110 2005-01-27
  • 打赏
  • 举报
回复
你为什么不用无模式对话框呢?你的要求好像不可能,只有一个线程且被堵塞,是不可能再弹出2的!
fengqinggao 2005-01-27
  • 打赏
  • 举报
回复
不好意思,上面第二行后面,应该是先KillTimer然后定义对话框2,否则出问题
fengqinggao 2005-01-27
  • 打赏
  • 举报
回复
如果如楼上所说,可以在对话框1 的OnInitDialog()用SetTimer设一个时钟,例如200毫秒,执行OnTimer函数,在OnTimer函数里定义对话框2 并DoModal(),然后KillTimer。

这样在对话框1 弹出后,200毫秒会弹出第二个对话框,如果200毫秒还嫌长,可以定义更短,只要系统能分辩(即对话框1创建完毕并弹出第二个),而人不能分辩即可
lujunliang 2005-01-27
  • 打赏
  • 举报
回复
楼主的意思应该是在对话框1上面弹出对话框2,并不要求同时操作2个对话框。
所以解决办法是在对话框1的OnInitDialog函数最后给自己发一个自定义消息。
然后在自定义消息的处理函数中调用对话框2的DoModal()就搞定了。
zjjzcgao 2005-01-27
  • 打赏
  • 举报
回复
简而言之,不行!
fengqinggao 2005-01-27
  • 打赏
  • 举报
回复
要求有些奇怪,呵呵,对于模式对话框,任意时刻,都只能对一个对话框进行操作,就算你同时弹出几个成功,也不可能同时对他们进行操作,所以,意义不大

如果实在要弹出,采用多线程,估计能行,每个线程弹出一个,没有尝试过,呵呵,希望不会乱套
ralphvsclark 2005-01-27
  • 打赏
  • 举报
回复
就是OnInitDialog之后才会弹出对话框的啊,你在第一个DoModal之后,调用第二的DoModal,但这两个也不算是同时弹出

15,979

社区成员

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

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