当前位置:编程学习 > VC++ >>

关于VC++的一个程序

void CToolDemoView::OnDrawrect()
{
// TODO: Add your command handler code here
CClientDC dc(this); //获得DC
CBrush mybrush(RGB(0,0,200)); //生成刷子
CBrush *oldbrush; //获得原刷子指针
oldbrush=dc.SelectObject(&mybrush); //把刷子选入设备环境
dc.Rectangle(10.10.200.150); //绘制矩形
dc.SelectObject(oldbrush); //恢复原有刷子
}
如上的一段画一个矩形的程序中,代码oldbrush=dc.SelectObject(&mybrush); 已经把刷子的指针指向mybrush了,dc.SelectObject(oldbrush);这行代码怎么能够恢复成原刷子呢?
答案:
dc.SelectObject(&mybrush); 把mybrush指向当前的刷子,同时把当前刷子句柄作为返回值赋值给oldbrush,这样再用dc.SelectObject(oldbrush)当然就恢复了; 
这是一个大的程序,你只是拿出它的一点,那是看不出来的,要把CClientDC::SelectObject()给出来才可以看懂
oldbrush是原刷,dc.SelectObject(oldbrush)的功能就是还原原刷

上一个:VC++ 编程问题
下一个:vc++中是否可以循环嵌套?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,