1、画笔
有两种形式创建画笔
一是直接通过GetStockObject()函数来调用
二是通过创建画笔来调用
HPEN CreatePen(
int fnPenStyle, // pen style
int nWidth, // pen width
COLORREF crColor // pen color
);
创建画笔后必须调用SelectObject函数来将起选入设备环境;
删除画笔可通过DeleteObject 函数来实现;
2、画刷
创建画刷
一是通过GetStockObject函数来调用
二是通过调用CreateSolidBrush 和CreateHatchBrush来创建画刷
HBRUSH CreateSolidBrush(
COLORREF crColor // brush color value
);
HBRUSH CreateHatchBrush(
int fnStyle, // hatch style
COLORREF clrref // color value
);
3、颜色
通过RGB函数来实现;
4、常用的绘图函数
设置画笔当前的位置函数MoveToEx
BOOL MoveToEx(
HDC hdc, // handle to device context
int X, // x-coordinate of new current position
int Y, // y-coordinate of new current position
LPPOINT lpPoint // pointer to old current position
);
从当前位置向指定坐标点画直线的函数LineTo
BOOL LineTo(
HDC hdc, // device context handle
int nXEnd, // x-coordinate of line's ending point
int nYEnd // y-coordinate of line's ending point
);
从当前位置开始,依次用线段连接lpPoints中指定各点的函数Polyline
BOOL Polyline(
HDC hdc, // handle to device context
CONST POINT *lppt, // pointer to array containing endpoints
int cPoints // number of points in the array
);
椭圆弧线Arc
BOOL Arc(
HDC hdc, // handle to device context
int nLeftRect, // x-coord of bounding rectangle's upper-left corner
int nTopRect, // y-coord of bounding rectangle's upper-left corner
int nRightRect, // x-coord of bounding rectangle's lower-right corner
int nBottomRect, // y-coord of bounding rectangle's lower-right corner
int nXStartArc, // first radial ending point
int nYStartArc, // first radial ending point
int nXEndArc, // second radial ending point
int nYEndArc // second radial ending point
);
画一个饼图并用当前的画刷进行填充Pie
BOOL Pie(
HDC hdc, // handle to device context
int nLeftRect, // x-coord of bounding rectangle's upper-left corner
int nTopRect, // y-coord of bounding rectangle's upper-left corner
int nRightRect, // x-coord of bounding rectangle's lower-right corner
int nBottomRect, // y-coord of bounding rectangle's lower-right corner
int nXRadial1, // x-coord of first radial's endpoint
int nYRadial1, // y-coord of first radial's endpoint
int nXRadial2, // x-coord of second radial's endpoint
int nYRadial2 // y-coord of second radial's endpoint
);
画一个矩形,并填充Rectangle
BOOL Rectangle(
HDC hdc, // handle to device context
int nLeftRect, // x-coord of bounding rectangle's upper-left corner
int nTopRect, // y-coord of bounding rectangle's upper-left corner
int nRightRect, // x-coord of bounding rectangle's lower-right corner
int nBottomRect // y-coord of bounding rectangle's lower-right corner
);
画一个椭圆并填充Ellipse
BOOL Ellipse(
HDC hdc, // handle to device context
int nLeftRect, // x-coord of bounding rectangle's upper-left corner
int nTopRect, // y-coord of bounding rectangle's upper-left corner
int nRightRect, // x-coord of bounding rectangle's lower-right corner
int nBottomRect // y-coord of bounding rectangle's lower-right corner
);
画一个多边形,并进行填充Polygon
BOOL Polygon(
HDC hdc, // handle to device context
CONST POINT *lpPoints, // pointer to polygon's vertices
int nCount // count of polygon's vertices
);
InvalidateRect 函数的作用是刷新用户区,(使区域无效)