读书人

无边框Dlg窗口实现拖拉 导致子窗口闪

发布时间: 2012-01-24 23:11:55 作者: rapoo

无边框Dlg窗口实现拖拉 ,导致子窗口闪屏
有一个Parent Dlg ,是个无边框的Dlg,由于是自绘边框,所以是手动处理窗口的LButtonDown消息,然后调用
SendMessage(
WM_NCLBUTTONDOWN, HTRIGHT,
MAKELPARAM (point.x, point.y));
等来实现拖拉窗口的效果的。

Parent Dlg 有个子窗口叫 Sub Dlg ,也是个Dlg窗口,这个Sub Dlg有个子窗口叫List Wnd,是个从CWnd派生出来的一个CWnd窗口。

现在的问题是:在拖拉Parent Dlg的时候,会导致List Wnd闪屏,即使List Wnd什么也不绘制也会发生闪屏。其中已经对
WM_ERASEBKGND消息做了return FALSE的处理。



如果Sub Dlg不作为Parent Dlg的子窗口,自己单独出来,对WM_SIZE消息进行相应,那么就不会发生闪屏


一直都不知道什么原因导致这种闪屏?望各位大哥指教。

[解决办法]
父窗口的WM_ERASEBKGND处理了么?
[解决办法]
Sub Dlg 也有 WS_CLIPCHILDREN 吗?

读书人网 >VC/MFC

热点推荐