方案1:

我昨天刚在csdn上解决了这个问题,不是双缓冲和WS_CLIPCHILDREN还有背景擦出什么的问题,就是在你重画的时候要去掉这些控件(按钮什么的)区域,关键代码如下,可以在onpaint 或者OnEraseBkgnd里面加入,灵活使用吧 

GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect); 
ScreenToClient(&rect); 
pDC->ExcludeClipRect (&rect);//该函数可以使这部分区域不被画,你可以再试试看下 

 

需要把主对话框上的CLIPCHILDREN选项去掉,就好了,有CLIPCHILDREN这个选项就会闪背景,嘎嘎原因吗我也不知道,只知道这么做管用。。。。

 

方案2:

Onpaint函数中:

ModifyStyle(1, WS_CLIPCHILDREN);

Onsize函数中:

ModifyStyle(WS_CLIPCHILDREN, 1);