绘图
绘图设备
DC(Device Context),绘图上下文或绘图描述表(大名鼎鼎,非常出名)
//伪代码
HDC hdc = BeginPaint(hwnd,&ps);
TextOut(hdc,100,100,"hello",...);
...
EndPaint(hdc);
HDC-DC句柄,表示绘图设备
GDI-Windows graphics device interface (Win API)
颜色
计算机使用红、绿、蓝
R-0~255
G-0~255
B-0~255
每一个颜色是3字节24位保存0~2^24-1 (16M种颜色)
16位:5(R),5(G),6(B)
24位:8(R),8(G),8(B)微软系统现在用
32位:8(R),8(G),8(B),8(绘图或透明度)32位二维绘图引擎不提供,只有三维引擎才能支持
颜色的使用
COLORREF-实际DWORD
例如:COLORREF nColor = 0;
赋值使用RGB宏
例如:nColor = RGB(0,0,255); //蓝色
nColor = RGB(255,0,0); //红色
nColor = RGB(0,255,0); //绿色
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
获取RGB值 返回RGB三种颜色的配比
GetRValue 获得红色配比
GetGValue 获得绿色配比
GetBValue 获得蓝色配比
例如:BYTE nRed = GetRValue(nColor);
//GetRVaue、GetGValue、GetBValue是宏定义
#define GetRValue(rgb) (LOBYTE(rgb))
#define GetGValue(rgb) (LOBYTE(((WORD)(rgb)) >> 8))
#define GetBValue(rgb) (LOBYTE((rgb)>>16))
基本图形绘制
点绘制 SetPixel 设置指定点的颜色
COLORREF