文档介绍:第5讲 Windows的图形设备接口及绘图
要点:
1、图形设备接口
2、绘图工具、颜色
3、绘图函数应用
1
绘图
一、图形设备接口(GDI)
GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字nStyle, //确定画笔样式
int nWidth, //画笔宽度
COLORREF rgbColor //画笔颜色
);
(3) 创建画笔后,必须调用SelectObject函数将其选入设备环境。
SelectObject(hdc,hP); //hP为所创建或获取的画笔句柄
不再使用当前画笔时,需删除画笔,以免占内存
DeleteObject(hP);
PS_DASH: 虚线
PS_DASHDOT: 点划线
PS_DASHDOTDOT: 双点划线
PS_DOT: 点线
PS_INSIDEFRAME: 实线
PS_NULL: 无
PS_SOLID: 实线
2. 画刷
画刷的创建与应用与画笔很相似,操作画刷也包括创建、选入设备环境和删除。
(1) 画刷的创建
使用画刷需事先定义一个画刷句柄。形式如下:
HBRUSH hBr; //hBr为画刷句柄
然后调用函数GetStockObject获取Windows系统提供的7种画刷
hBr=(HBRUSH)GetStockObject(nBrushStyle)画刷样式
BLACK_BRUSH 黑色画刷
DKGRAY_BRUSH 深灰色画刷
GRAY_BRUSH 灰色画刷
HOLLOW_BRUSH 虚画刷
LTGRAY_BRUSH 亮灰色画刷
NULL_BRUSH 空画刷
WHITE_BRUSH 白色画刷
指定颜色画
刷如何获得?
也可以使用MFC的CBrush类声明画刷成员变量
可调用函数CreateSolidBrush和CreateHatchBrush创建画刷,
hBr=CreateSolidBrush(rgbColor);
创建具有
指定颜色
的单色画刷
创建指定阴
影图案和颜
色的画刷
(2) 选入设备环境
创建画刷后, 通过SelectObject(hdc,hBr);将其选入设备环境
(3) 删除画刷
不使用画刷时,可用DeleteObject(hBr);删除画刷,释放内存
hBr=CreateHatchBrush
(int nHctchStyle,
COLORREF rgbColor
);
HS_BDIAGONAL 45度从左上到右下
HS_DIAGCROSS 45度叉线
HS_FDIAGONAL 45度从左下到右上
HS_CROSS 垂直相交的阴影线
HS_HORIZONTAL 水平阴影线
HS_VERTICAL 垂直阴影线
3. 颜色
Windows使用宏RGB定义绘图的颜色,其形式为:
RGB(nRed, nGreen,nBlue)
红色值
蓝色值
绿色值
RGB(255,0,0)
RGB(0,255,0)
RGB(0,0,255)
三、 常用绘图函数
1.设置画笔当前位置的函数MoveToEx,
BOOL MoveToEx
(HDC hdc,
int X,Y, // X、Y分别为新位置的逻辑坐标
LPPOINT lpPoint //存放原画笔位置的POINT结构地址
)
2. 从当前位置向指定坐标点画直线的函数LineToEx,
BOOL LineToEx(HDC hdc,int X,int Y) //X和Y为线段的终点坐标
3. 绘制矩形,并用当前画刷进行填充
BOOL Rectangle(HDC hdc,int X1,int Y1,int X2,int Y2)
(X1,Y1)和(X2,Y2)分别为矩形的左上角和右下角的逻辑坐标
4. 绘制圆角矩形,并用当前画刷填充
BOOL RoundRect (HDC hdc,int X1,int Y1,int X2,int Y2,
int nHeight, int nWidth)
圆角的高度和宽度
5. 绘制椭圆,并用当前画刷填充
BOOL Ellipse(HDC hdc,intX1,intY1,intX2,intY2)
MFC应用:绘图
设置绘图的设备环境