GDI 绘图的画布
绘图的画布 ---- 窗口客户区参数:
typedef struct _RECT
{
LONG left;
LONG top;
LONG right;
LONG bottom
}RECT;
获取窗口客户区域参数:
BOOL GetClientRect(
HWND hWnd, // 窗口句柄
LPRECT lpRect // 存储矩形结构地址
);
获取时机: 在WM_PAINT 消息中获取的是窗口尺寸改变后客户区参数
如果想要画出的图形随窗口变化,需要在该消息中使用该函数.
GDI 基本图形------像素操作
设置 像素的颜色:
COLORREF SetPixel(
HDC hdc, // 设备环境 句柄
int x, // 像素的x坐标
int y, // 像素的y坐标
COLORREF crColor // 像素颜色
);
GDI 基本图形绘制API
BOOL GetCurrentPositionEx(
HDC hdc, // handle of device context
LPPOINT lpPoint
// address of structure receiving current position
);
GetCurrentPositionEx(hdc,&pt);
直线
BOOL MoveToEx(
HDC hdc, // 设备句柄
int X, // 目标点的x坐标
int Y, // 目标点的y坐标
LPPOINT lpPoint // 存放当前点的结构体指针
);
BOOL LineTo(HDC hdc, int nXEnd,int nYEnd);
矩形
BOOL Rectangle( HDC hdc,
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect
);
GDI 的画笔----使用系统画笔
HPEN hPen,oldPen;
hPen=(HPEN)GetStockObject(WHITE_PEN);
oldPen = (HPEN)SelectObject(hdc,hPen);
GDI 绘图函数调用
SelectObject(hdc,oldPen); //恢复原来的画笔
GDI 创建画笔
HPEN CreatePen(int fnPenStyle // 线型
int nWidth, // 画笔线宽,以像素为单位
COLORREF crColor // 画笔颜色 ,RGB
);
线型: PS_SOLID PS_DASH PS_DOT PS_DASHDOT等
使用创建的画笔:
HPEN hPen,oldPen;
hPen = (HPEN)Create(PS_DASHDOTDOT,1,RGB(255,0,0));
oldPen = (HPEN)SelectObject(hdc,hPen);
// 绘图
SelectObject(hdc,oldPen); // 恢复原来的画笔
DeleteObject(hPen);