hdc = BeginPaint(hwnd,&ps); //other program lines EndPaint(hwnd,&ps);
变量ps是类型为PAINTSTRUCT的结构,该结构的hdc字段是BeginPaint返回的设备描述表句柄。
PAINTSTRUCT结构又包含一个名为rcPaint的RECT结构,rcPaint定义一个包围窗口客户区无效范围的矩形。使用从BeginPaint获得的设备描述表句柄,只能在这个区域内绘图。BeginPaint调用使该区域有效。
hdc = GetDC(hwnd); //other program lines ReleaseDC(hwnd,hdc);
3、Windows程序还可以获取适用于整个窗口(而不仅限于窗口的客户区)的设备描述句柄:
hdc = GetWindowDC(hwnd); //other program lines ReleaseDC(hwnd,hdc);
这个设备描述表除了客户区之外,还包括窗口的标题栏、菜单、滚动条、和框架。GetWindowDC函数很少使用,如果想尝试用一用它,则必须捕获WM_NCPAINT(非客户绘制)消息,Windows使用该消息在窗口的非客户区上绘图。我们看到大部分的网络游戏的登陆器就是利用这个设备描述表句柄来完成的个性化制作。
hdc = CreateDC(pszDriver,pszDevice,pszOutput,pData); //other program lines DeleteDC(hdc);
hdc = CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
hdc = CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL);
hdcMem = CreateCompatibleDC(hdc); //other program lines DeleteDC(hdcMem);
hdcMeta = CreateMetaFile(pszFiename); //other program lines hmf = CloseMetaFile(hdcMeta);