GDI编程
GDI:Graphics Devices Interfacce
GDI是显示设备与实际物理设备之间的桥梁,无需关心设备具体细节
就是一些与绘图相关的函数和一些数据结构和宏等组成的一个整体,它的作用就是实现了一对通用的图形对象,向屏幕、内存、打印机等设备进行绘图操作
设备环境
有很多别名:设备上下文,设备DC,(Device Context)简单的说就是程序中可以绘图的地方。
GDI的几个区域
屏幕区、窗口区、客户区
如何在DC上绘图:
1、获得设备DC;
2、在DC上绘图
有两种方式分别如下:
//窗口绘制以及重绘case WM_PAINT:中,我们在此进行任意绘图的绘制
PAINTSTRUCT ps; //结构体
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);//进行一些初始化的操作,返回DC句柄
HPEN pen = CreatePen(PS_SOLID,3,RGB(255,0,0));//创建一个新的自定义颜色的画笔,如果不创建的话,就会使用系统默认的黑色画笔
HPEN holdpen = (HPEN)SelectObject(hdc,pen);//返回一个旧画笔
tagPOINT pt;
MoveTOEx(hdc,0,0,&pt);
Lineo(hdc,100,100)
SelectObject(hdc,holdpen);//将画笔选到dc句柄中
EndPaint(hWnd,&ps);//结束操作
DeleteObject(pen);//由create创建的东西需要delete掉
g_hWnd = NULL;//全局变量
//在hWnd = CreateWindow();后面添加
g_hWnd = hWnd ;
HDC hDc = GetDc(g_hWnd);//客户区的DC
HDC hDcWnd = GetWindowDC(g_hWnd); //窗口的DC
//HBRUSH brush = CreateSolidBrush(RGB(255,0,0));//获得一个红色的画刷
HBRUSH brush = (HBRUSH)GetStockObject(NULL_BRUSH);//获得一个透明画刷
SelectObject(hDc,brush);
Rectangle(hDc,0,0,50,50); //画一个矩形
ReleaseDC(g_hWnd,hDc);//释放句柄,如果不释放的话,别的函数就无法使用这个dc