FillRect()

blldw 2002-01-04 03:52:56
我在对话框中设置了一个button按钮,然后

CDC* pDC= CWnd::GetWindowDC ();
CRect rect(50,50,400,100);
CBrush newbrush;
newbrush.CreateSolidBrush (RGB(100,100,200));
CBrush* oldbrush=pDC->SelectObject (&newbrush);
pDC->FillRect (&rect,&newbrush);
pDC->SelectObject (oldbrush);
pDC->DeleteDC ();

当执行后,为什么被填充的矩形区域把button按钮覆盖了,应该怎么做才能使只能填充设置的区域,而不覆盖位于该区域内的控件呢?
谢谢
...全文
470 点赞 收藏 9
写回复
9 条回复
blldw 2002年01月06日
谢谢各位,我添加一句“Invalidate(FALSE)",就合我意了。
另外,chehw的GetDC,解决了我的另一个问题。
回复 点赞
chehw 2002年01月05日
尽量不要使用GetWindowDC, 使用GetDC(). 除非你要重画非客户区.
释放时应调用ReleaseDC(pDC),而不是DeleteDC()
回复 点赞
chehw 2002年01月05日
如果你选中clip children, 应该没问题.
Rebuild All一下.
回复 点赞
blldw 2002年01月05日
不行
回复 点赞
chehw 2002年01月04日
DIALOG STYLE 中选中clip children
回复 点赞
blldw 2002年01月04日
可是基于对话框的程序,我事先得把按钮,编辑框什么的设置好啊
回复 点赞
vc_xiaoxin 2002年01月04日
我觉得你先填充区域在创建其他控件不就行了么
回复 点赞
blldw 2002年01月04日
如果该区域内还有一个edit控件呢,声明:m_edit为该控件的值变量。
回复 点赞
hujun614 2002年01月04日
调用你的button的CWnd::Invalidate试试。
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告