4.03 绘图设备
基本概念
一般在 WM_PAINT 中使用
● 绘图设备 DC ( Device Context ) ,绘图上下文/绘图描述表
● HDC-DC 句柄,表示绘图设备
● GDI - Windows graphics device interface (Win32 提供的绘图 API)
● 颜色
计算机使用红、绿、蓝(8 位)
R-0~255
G-0~255
B-0~255
每一个点颜色是 3 个字节 24 位保存 0-2^24-1
16位:5,5,6(过去,忽略)
32位:8,8,8,8绘图或透明度
● 颜色的使用
COLORREF-实际为 DWORD
例如: COLORREF nColor= 0;
● 赋值使用 RGB 宏
例如: nColor = RGB(0, 0,255);
● 获取 RGB 值
GetRValue/GetGValue/GetBValue
例如: BYTE nRed = GetRValue(nColor);
基本图形绘制
● SetPixel 设置指定点的颜色
COLORREF SetPixel(
HDC hdc.//DC句柄
int X,//X坐标
int Y.//Y坐标
COLORREF crColor//设置的颜色
);返回点原来的颜色
PAINTSTRUCT ps = { 0 };
HDC hdc = BeginPaint(hWnd, &ps);
SetPixel(hdc, 100, 100, RGB(255,0,0));
EndPaint(hWnd, &ps);
● 线的使用(直线、弧线)
MoveToEx: 指名窗口当前点
LineTo: 从窗口当前点到指定点绘制一条直线
当前点:上一次绘图时的最后一点,初始为(0,0)点
PAINTSTRUCT ps = { 0 };
HDC hdc = BeginPaint(hWnd, &ps);
MoveToEx(hdc, 100, 100, NULL);
LineTo(hdc, 300, 300);
EndPaint(hWnd, &ps);
● 封闭图形:能够用画刷填充的图形
Rectangle / Ellipse
Rectangle(hdc, 100,100,300,300);
Ellipse(hdc, 100,100,300,300);