CFileDialog 弹出后,父窗口为何刷新不了

C/C++ code

    CFileDialog  dlg(TRUE);
    dlg.DoModal();



弹出CFileDialog 后,切换窗口,父窗口在onpaint中的绘图全部没有了,onpaint没有触发。
为何????


在不弹出CFileDialog 对话框,或弹出其它自己定义的对话框是可以刷新的。

请问如何设置,谢谢!

作者: buffaloox   发布时间: 2011-06-15

因为消息队列只为当前活动窗口(或者叫当前激活窗口)派发消息,
因为dlg.DoModal()时,当前活动窗体已经变成了文件对话框,所以它下面的窗体将接收不到消息

作者: shenyi0106   发布时间: 2011-06-15

为何DoModal其它窗口没有问题呢?

作者: buffaloox   发布时间: 2011-06-15

DoModal()阻塞了父窗口的消息循环,导致父窗口的某些消息不能处理

作者: VisualEleven   发布时间: 2011-06-15

引用 2 楼 buffaloox 的回复:
为何DoModal其它窗口没有问题呢?

???

作者: VisualEleven   发布时间: 2011-06-15

请问如何解决?

作者: buffaloox   发布时间: 2011-06-15

引用 3 楼 visualeleven 的回复:

DoModal()阻塞了父窗口的消息循环,导致父窗口的某些消息不能处理



我把CFileDialog 换成其它自定义对话框,就没有那样的问题

作者: buffaloox   发布时间: 2011-06-15

domodal()是模态对话框,只对当前窗口有消息循环,改为非模态的就好了

作者: hustlaofan   发布时间: 2011-06-15

domodal()是模态对话框

作者: xiaoguailong3   发布时间: 2011-06-15

mark

作者: kyotrue   发布时间: 2011-06-15

我觉得不是模态对话框的问题,换成其它自定义窗口没问题的

作者: buffaloox   发布时间: 2011-06-15

等待高手!!!!!!

作者: buffaloox   发布时间: 2011-06-15

自己顶!

作者: buffaloox   发布时间: 2011-06-15