MFC对话框重绘背景时如何避免连子控件一起绘制的情况

时间:2022-05-08 14:35:46
我现在有一个父对话框,然后下面包含两个子对话框,为了便于理解,我在这里分别称为A,B。
我现在的情况是我给父对话框用 FillSolidRect()函数设置了背景,然后让A显示一张图片,并
占据了对话框1/8大小的空间。
这个时候,我又让B显示一张图片,并填充整个父对话框( A被覆盖了
当我关闭B的时候 这时候父对话框要进行重绘,发现父对话框重绘背景
时把A也给用背景色填充了,从而导致我显示在A上的图片也没了。
问题:请问我现在应该怎么做才能让父对话框重绘时,不把A也给重绘掉呢?

2 个解决方案

#1


在资源上勾上了Clip children,那么父窗口刷新的话,就不会去刷新子窗口的区域了

#2


这种情况真没有遇到过,一般都画图的是一个单独的窗口,上面不会有其它控件元素,当然包括这里说的A、B窗口的情形。
楼上说的clip children没有试过(一直没有用到过,不理解这个选项),说不定真行,楼主可以试一下。
或者是整理下程序的窗口管理,最好单独分开,不要在画图的窗口中放其它的子控件(包括子窗口)

#1


在资源上勾上了Clip children,那么父窗口刷新的话,就不会去刷新子窗口的区域了

#2


这种情况真没有遇到过,一般都画图的是一个单独的窗口,上面不会有其它控件元素,当然包括这里说的A、B窗口的情形。
楼上说的clip children没有试过(一直没有用到过,不理解这个选项),说不定真行,楼主可以试一下。
或者是整理下程序的窗口管理,最好单独分开,不要在画图的窗口中放其它的子控件(包括子窗口)