windows GDI:
在不处理WM_PAINT消息时,用GetDc和ReleaseDc来获取设备描述句柄,在处理的时侯,用BeginPaint与EndPaint来获取
hdc=BeginPaint(hwnd,&ps);
EndPaint(hwnd,&ps);
变量ps是类型为PAINTSTRUCT的结构体,该结构的hdc字段是 BeginPaint返回的设备描述句柄,PAINTSTRUCT结构又包含一个名为rcPaint的RECT结构体,rcPaint定义了一个包围窗口 客户区无效范围的矩形。使用从BeginPaint获得的设备描述句柄,只能在这个区域内绘图。BeginPaint调用使该区域有效。
windows在处理非WM_PAINT消息时获取设备描述句柄:
hdc=GetDc(hwnd);
Release(hwnd,hdc);
这个设备描述表适用于窗口句柄为hwnd的客户区,这些调用与BeginPaint和EndPaint的组合之间的基本区别是,利用从GetDC返回的句柄可以在整个客户区上绘图,当然,GetDC和ReleaseDC不使客户区中任何可能的无效区域变为有效。
Windows程序还可以获取适用于整个窗口的设备描述表句柄:
hdc=GetWindowDC(hwnd);
ReleaseDC(hwnd,hdc);
获取设备描述表句柄的另一个更通用的函数是CreateDC:
hdc=CreateDC(pszDriver,pszDevice,pszOutput,pData);
Delete(hdc);