HDC资料型态定义为32位元的无正负号整数。然後,程式就可以使用需要装置内容代号的TextOut等GDI函式。呼叫EndPaint即可释放装置内容代号。
一般地,处理WM_PAINT讯息的形式如下:
在处理WM_PAINT讯息时,必须成对地呼叫BeginPaint和EndPaint。如果视窗讯息处理程式不处理WM_PAINT讯息,则它必须将WM_PAINT讯息传递给Windows中DefWindowProc(内定视窗讯息处理程式)。DefWindowProc以下列代码处理WM_PAINT讯息:
这两个BeginPaint和EndPaint呼叫之间中没有任何叙述,仅仅使先前无效区域变为有效。但以下方法是错误的:
Windows将一个WM_PAINT讯息放到讯息伫列中,是因为显示区域的一部分无效。如果不呼叫BeginPaint和EndPaint(或者ValidateRect),则Windows不会使该区域变为有效。相反,Windows将发送另一个WM_PAINT讯息,且一直发送下去。
绘图资讯结构
前面提到过,Windows为每个视窗保存一个「绘图资讯结构」,这就是PAINTSTRUCT,定义如下:
在程式呼叫BeginPaint时,Windows会适当填入该结构的各个栏位值。使用者程式只使用前三个栏位,其他栏位由Windows内部使用。hdc栏位是装置内容代号。在旧版本的Windows中,BeginP