下面对以上代码进行说明:
(1)获得需要绘图的矩形(Rectangle)
通常使用GetClientRect()函数获得整个区域。但是,通常情况下并不是整个区域都要绘制,比如:你用另一个窗口遮住了需要绘制的窗口的一部分,当你移动遮挡窗口时,只需要绘制露出的那部分就行了,犯不着把整个窗口都绘制一遍,这样效率很低下。我们用CDC::GetClipBox函数获得需要绘制的矩形区域(即无效区域)。
(2)实现无闪烁的绘图
想要消除闪烁,当然首先要知道为什么产生闪烁。那样我们才知道这样避免闪烁。
闪烁是由背景色与绘图产生强烈反差引起的。也就是说我在绘图前先要擦掉我绘图区域的以前图