windows程序编程(4):GDI编程

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值