hur.cn - 华软网

 热门搜索

图形重绘 多谢大家

  作者:未知    来源:网络    更新时间:2011/8/11
对话框上一个Static控件,一个按钮,按钮中的代码为:
CWnd * pDC = GetDlgItem(IDC_STATIC);
CClientDC dc(pDC);
CRect rect;
pDC->GetClientRect(&rect);
dc.FillSolidRect(&rect,RGB(0,0,0));
就是把Static控件画成黑色的。
我的问题:当对话框被遮挡后黑色就消失了,必须重新按按钮才出现,怎么才能避免这种情况,保持遮挡还原后黑色图形不消失。
我是初学者,网上很多回答都一两句,不知道到底怎么回事,不知道所谓的重绘代码放到哪里,该怎么写,有的说放到OnPaint函数里,但是具体该怎么写,是放到对话框的OnPaint里吗?还是该怎么实现我的想法。代码比较简单,希望各位高手给出详细点的做法,代码也比较简单,最好能有代码,多谢各位了。
---华软 网友回答---
你上面不是已经说了吗?放到OnPaint中啊。
---华软网友回复---
不是对话框的OnPaint,而是控件的OnPaint。你在对话框编辑器拖的是static控件,它对wm_paint的处理就是画成灰的。因此你要写自己的类,调用SubclassDlgItem,用你的wndproc处理消息,才能在wm_paint时执行你的代码。
---华软网友回复---
控件的OnPaint没错      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。