设备描述表

1.获取设备描述表句柄:
a. hdc = BeginPaint(hwnd,&ps);
   //other program lines
   EndPaint(hwnd,&ps);
   BeginPaint调用使整个客户区有效(阻止WM_PAINT消息一直发送),填充
   ps结构的字段,返回的设备描述句柄。使用这个句柄只能在ps结构中的rcPaint字段规定的区域
   内绘图。EndPaint调用可释放设备描述句柄。这两个函数常成对出现,并且一般只用在WM_PAINT
   消息中。
b. hdc = GetDC(hwnd);
   //other progream lines
   ReleaseDC(hwnd,hdc);
   GetDC函数调用后会返回hwnd参数所指定的窗口的客户区所对应的设备描述表句柄。可见GetDC调用
   与BeginPaint的基本区别是,利用从GetDC返回的句柄可以在整个客户区上绘图。如果hwnd参数设置
   为NULL,那么函数会返回整个桌面的设备描述表句柄。当不再需要该设备环境时,需要调用ReleaseDC
   函数释放设备描述表。
c. hdc = GetWindowDC(hwnd);
   //other progream lines
   DeleteDC(hdc);
   GetWindowDC返回可以在整个窗口(包括客户区部分和标题栏、菜单、滚动条、框架等非客户区部分)
   绘图的设备描述表句柄,不过此函数很少使用。
d. hdc = CreateDC(lpszDriver,lpszDevice,lpszOutput,lpData);
   //other progream lines
   DeleteDC(hdc);
   BeginPaint、GetDC和GetWindowDC获得的设备内容都与显示器上的某个特定窗口(即hwnd)相关。
   CreateDC是取得设备描述表句柄一个更通用的函数,它甚至可以获取非显示器输出设备描述表句柄。
   当不再需要该设备描述表时只可调用DeleteDC函数删除它。

2.保存设备描述表:

 int idSaved = SaveDC(hdc) ;//保存

 RestoreDC (hdc, idSaved) ;//恢复

 RestoreDC(hdc,-1);//表示恢复最近保存的一次

 

posted @ 2016-08-05 16:22  xiaofeiyang  阅读(654)  评论(0编辑  收藏  举报