使矩形区域无效

  OnLButtonDown函数虽然可以随时改变一个m_nColor的值,但是如果只是这样的话,OnDraw函数是不会调用的(除非用户改变视图的大小),因此,OnLButtonDown函数必须调用

InvalidateRect函数(它是CMyView类从CWnd继承过来的成员函数),它能触发Windows的WM_PAINT消息,该消息又在CView类被映射,以引起对OnDraw的调用。如果有必要,OnDraw函数还可以访问传给InvalidateRect的"无效矩形区域"参数。

  有两种情况可以优化Windows的绘制过程。第一,我们必须知道WIndows只更新无效的矩形内部的像素,所以所设置的无效矩形区域越小(例如在函数OnLButtonDown中设置),则重画的速度就越快;第二,执行在无效矩形歪蜜啊女的绘制指令纯属是浪费时间,OnDraw函数可以调用CDC中的成员函数GetClipBox得到无效的矩形大小,这样在绘制时就可以避免对其外边的的对象的绘制。记住,OnDraw函数不仅仅会响应InvalidateRect调用,它也会在窗口改变大小和窗口显露时被调用,因此,OnDraw要对窗口内所有的绘制处理,而且它还要适应无效矩形的限制。

转载于:https://www.cnblogs.com/cwbo-win/p/3219446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值