17.4 绘制控件
第15章描述了主要的连三子应用程序的绘制代码。代码每次绘制整个控件,并且试图每个像素只绘制一次,因而没有闪烁。尽管在这方面并不完美,但是那里描述的方法对于大部分的控件已经足够。这一节阐示了绘制控件的单个部分的一些技巧。
17.4.1 绘制到视图的一部分
尽管连三子应用程序没有一个视图要求这个功能,但是有好模式可以遵循是一个重要的理念。让我们设想,状态窗口不包含一个圈或者叉,而是包含两个,并且假定它们被一个矩形盒子围绕。绘制代码可能是:
这个函数使用4个新成员,存储左边字符的左上角的位置和要绘制的字符的大小;右边的字符大小相同,并且紧挨着左边的字符。现在这个函数中有更多的东西要绘制,而且闪烁的概率很大。背景以白色绘制,字符在顶上绘制;但是,在背景的绘制和字符的绘制之间有一个界限。为了避免它发生,可以用下面的代码清理边界以外的区域。
【责任编辑:
董书 TEL:(010)68476606】