Windows程序设计之图形基础

来源:互联网 发布:gaussianhmm python 编辑:程序博客网 时间:2024/05/16 00:57

1.GDI的目的之一就是支持与设备无关

2.GDI基本图形
(1)直线和曲线
(2)填充区域
(3)位图
(4)文本

3.设备描述表(DC)
在图形输出设备上绘图前,首先必须获得设备描述表句柄(hdc),这样Windows才允许使用设备
方法一:在处理WM_PAINT消息时,使用BeginPaint和EndPaint调用
hdc = BeginPaint (hwnd, &ps) ;
       GDI  
EndPaint (hwnd, &ps) ;

方法二:在处理非WM_PAINT消息时使用GetDC调用:

hdc = GetDC (hwnd) ;

注:每一个绘图的过程都是如下面的顺序来进行的:
获取一个设备环境句柄->利用设备环境句柄和GDI函数进行绘图->释放设备环境句柄

3.色彩
在大多数GDI函数调用中,使用COLORREF(32位无符号整数)表示一种色彩
31...24 23...16 15...8  7...0
   0     蓝(B)   绿(G)  红(R)
WINGED.H中,定义了RGB宏,三个参数分别表示R(红)、G(绿)、B(蓝)
如:RGB(255,0,0)表示红色
     RGB(0,0,0)    表示黑色
4.画图形


(1)直线
MoveToEx (hdc, xBeg, yBeg, NULL) ;//将坐标(xBeg,yBeg)设为直线开始点     
LineTo (hdc, xEnd, yEnd) ;//直线终点坐标(xEnd,yEnd),同时该坐标成为当前位置

 

(2)矩形
Rectangle (hdc, xLeft, yTop, xRight, yBottom) ;
点(xLeft, yTop)是矩形的左上角,(xRight, yBottom)是矩形的右下角

 

(3)椭圆
Ellipse (hdc, xLeft, yTop, xRight, yBottom) ;
该矩形是椭圆的边界框

 

5.GDI对象


(1)画笔(Stock Pens)
Windows提供了三种画笔:BLACK_PEN(默认设备描述表中画笔),WHITE_PEN,NULL_PEN

hpen=(HPEN)GetStockObject(WHITE_PEN);//获得WHITE_PEN画笔句柄
SelectObject(hdc,hpen); //将画笔选进设备描述表,返回设备描述表中原有画笔

创建画笔:hPen = CreatePen (iPenStyle, iWidth, crColor) ;

删除画笔:DeleteObject (hPen) ;

 

(2)画刷
画刷是一个8×8的位图,它水平和垂直地重复使用来填入内部区域。
创建画刷:
hBrush = CreateSolidBrush (crColor) ;
hBrush = CreateHatchBrush (iHatchStyle, crColor) ;
hBrush = CreateBrushIndirect (&logbrush) ;

 

原创粉丝点击