[00016]-[2015-09-05]-[00]-[Window GDI编程 --- 设备环境]

【设备环境】 DC(Device Context)
在这里我们需要明白一点 Windows SDK 和 MFC类封装 绘图编程的一点区别
Window SDK 由于是纯粹采用WindowAPI 来实现编程 有自己的应用程序测基本框架
MFC 由于采用采用类封装的机制 将C++面向对象编程和windows的消息机制很好地结合在一起

Window SDK 绘图注重句柄的操作所以 HDC HBRUSH HBITMAP等类型的变量比较常用
MFC中 CDC CBURSH CBitmap等类的变量操作比较常见,但是由于MFC是在Windows API的封装,
只不过在实现形式不同,当然编程思想也有了很大先进的进步,在MFC中也是可以用WindowsSDK
形式进行GDI绘图操作的。


// 本文重点介绍Windows SDK的绘图操作和知识 对于MFC类封装的绘图操作,以后有机会可能会写
【获取设备环境句柄】
【1】在处理WM_PAINT消息时使用BeginPaint函数和EndPaint函数
hdc = BeginPaint(hWnd, &ps);
.........
EndPaint(hWnd, hdc);

【2】GetDC 函数 ReleaseDC 函数
hdc = GetDC(hWnd); // hWnd 设备上下文环境被检索的窗口的句柄,如果该值为NULL,GetDC则检索整个屏幕的设备上下文环境。
........
ReleaseDC(hWnd, hdc);

【3】GetWindowDC 函数 ReleaseDC 函数
hdc = GetWindowDC(hWnd);
.......
ReleaseDC(hWnd, hdc);

【4】CreateDC 函数 DeleteDC 函数
hdc = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL); // 可获取当前整个屏幕的设备环境句柄
.......
DeleteDC(hdc);

【5】CreateCompatibleDC(hdc) 创建内存设备环境
hdcMem = CreateCompatibleDC(hdc);
......
DeleteDC(hdcMem)

【获取设备环境的相关信息】
iValue = GetDeviceCaps(hdc, iIndex); // iIndex 29个标识符

posted @ 2015-09-05 11:42  Auris  阅读(117)  评论(0编辑  收藏  举报