第五讲WIN32编程入门GDI绘图.ppt

上传人:本田雅阁 文档编号:3454139 上传时间:2019-08-27 格式:PPT 页数:18 大小:209.54KB
返回 下载 相关 举报
第五讲WIN32编程入门GDI绘图.ppt_第1页
第1页 / 共18页
第五讲WIN32编程入门GDI绘图.ppt_第2页
第2页 / 共18页
第五讲WIN32编程入门GDI绘图.ppt_第3页
第3页 / 共18页
第五讲WIN32编程入门GDI绘图.ppt_第4页
第4页 / 共18页
第五讲WIN32编程入门GDI绘图.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第五讲WIN32编程入门GDI绘图.ppt》由会员分享,可在线阅读,更多相关《第五讲WIN32编程入门GDI绘图.ppt(18页珍藏版)》请在三一文库上搜索。

1、,第二部分 Win32 SDK编程,绘图的画布窗口客户区参数: typedef struct _RECT LONG left; /矩形左上角的x坐标. LONG top; /矩形左上角的y坐标. LONG right; /矩形右下角的x坐标. LONG bottom; /矩形右下角的y坐标. RECT;,GDI绘图的画布,获得窗口客户区域参数: BOOL GetClientRect ( HWND hWnd, / 窗口句柄 LPRECT lpRect /矩形结构体地址 ); 获取时机:在WM_PAINT消息中获得的是窗口尺寸改变 后的客户区参数,如果想要画出来的图形随窗口变化,需要在该消息中使用

2、该函数。,GDI绘图的画布,设备上显示的图形型态本身可以被分为几类: 设置像素的颜色 COLORREF SetPixel ( HDC hdc, / 设备环境句柄 int X, / 像素的x坐标 int Y, / 像素的y坐标 COLORREF crColor / 像素颜色 );,GDI基本图形像素操作,设备上显示的图形型态本身可以被分为几类: 直线和曲线 线条是所有向量图形绘制系统的基础。GDI支持直线、矩形、椭圆(包括椭圆的子集,也就是我们所说的圆)、椭圆圆周上的部分曲线即所谓的弧以及贝塞尔曲线(Bezier spline)。所有更复杂的曲线可由折线(polyline)代替,折线通过一组非常

3、短的直线来定义一条曲线。线条用设备内容中选中的目前画笔绘制。,GDI基本图形直线,GetCurrentPositionEx (hdc, ,GDI基本图形直线,BOOL Rectangle ( HDC hdc, / 设备句柄 int nLeftRect, / 包围矩形的左上角x坐标 int nTopRect, /包围矩形的左上角x坐标 int nRightRect, /包围矩形的右下角x坐标 int nBottomRect /包围矩形的右下角y坐标 );,GDI基本图形矩形,BOOL RoundRect ( HDC hdc, / 设备句柄 int nLeftRect, /包围矩形的左上角x坐标

4、int nTopRect, / 包围矩形的左上角y坐标 int nRightRect, / 包围矩形的右下角x坐标 int nBottomRect, /包围矩形的右下角y坐标 int nWidth, / 用于画圆角的椭圆的宽度 int nHeight /用于画圆角的椭圆的高度 );,GDI基本图形圆角矩形,BOOL Ellipse ( HDC hdc, / 设备句柄 int nLeftRect, / 包围矩形的左上角x坐标 int nTopRect, /包围矩形的左上角x坐标 int nRightRect, /包围矩形的右下角x坐标 int nBottomRect /包围矩形的右下角y坐标 )

5、;,GDI基本图形椭圆,怎样改变绘图时使用的线型以及线条的颜色: HPEN hPen,oldPen; hPen =(HPEN) GetStockObject(WHITE_PEN); oldPen = (HPEN)SelectObject(hdc, hPen); GID 绘图函数调用; SelectObject(hdc, oldPen); /恢复原来的画笔,GDI的画笔使用系统画笔,HPEN CreatePen ( int fnPenStyle, / 线型 int nWidth, / 画笔线宽,以像素为单位 COLORREF crColor / 画笔颜色,RGB(R, G,B) ); 线型可选参

6、数值: PS_SOLID PS_DASH PS_DOT PS_DASHDOT等,GDI的画笔创建画笔,使用创建的画笔: HPEN hPen,oldPen; hPen = CreatePen(PS_DASHDOTDOT, 1, RGB(255,0,0); oldPen = (HPEN)SelectObject(hdc, hPen); GID 绘图函数调用; SelectObject(hdc, oldPen); /恢复原来的画笔 DeleteObject(hPen);,GDI的画笔创建画笔,填充区域 当一系列直线或者曲线封闭了一个区域时,该区域可以使用目前GDI画刷对象进行填图。这个画刷可以是实心

7、色彩、图案(可以是一系列的水平、垂直或者对角标记)或者是在区域内垂直或者水平重复的位图图像。,GDI填充区域,HBRUSH hBrush,oldBrush; hBrush =(HBRUSH) GetStockObject(GRAY_BRUSH); oldBrush = (HBRUSH)SelectObject(hdc, hBrush); GID 绘图函数调用; SelectObject(hdc, oldBrush); /恢复原来的画笔,GDI的画刷使用系统画刷,HBRUSH CreateSolidBrush ( COLORREF crColor / 画刷颜色 ); 创建一个单颜色的画刷,即填充

8、区域内使用单一指定的颜色填充 HBRUSH CreateHatchBrush ( int fnStyle, / 线条的图案方式 COLORREF crColor / 线条颜色 ); fnStyle可选参数值: HS_VERTICAL HS_DIAGONAL HS_CROSS 等,GDI的画刷创建画刷,使用创建的画刷: HBRUSH hBrush,oldBrush; hBrush = CreateHatbrush(HS_CROSS, RGB(255,0,0); oldBrush = (HBRUSH)SelectObject(hdc, hBrush); GID 绘图函数调用; SelectObje

9、ct(hdc, oldBrush); /恢复原来的画笔 DeleteObject(hdc, hBrush);,GDI的画刷创建画刷,位图 位图是位的矩形数组,这些位对应于显示设备上的图素,它们是位映像图形的基础工具。位图通常用于在视讯显示器或者打印机上显示复杂(一般都是真实的)图像。位图还可以用于显示必须快速绘制的小图像(诸如图标、鼠标光标以及在应用工具条中出现的按钮等)。GDI支持两种型态的位图旧式的(虽然还非常有用)设备相关位图,是GDI对象;和新的(如Windows 3.0的)设备无关位图(或者DIB),可以储存在磁盘文件中。 文字文字的数学味道不像计算机图形的其它方面那样浓。文字和几百

10、年的传统印刷术有关,它被许多印刷工人看作为一门艺术。因此,文字通常不仅是所有的计算机图形系统中最复杂的部分,而且(如果识字还是社会基本要求的话)也是最重要的部分。用于定义GDI字体对象和取得字体信息的数据结构是Windows中最庞大的部分之一。从Windows 3.1开始,GDI开始支持TrueType字体,该字体是在填入轮廓线基础上建立的,这样的填入轮廓线可由其它GDI函数处理。依据兼容性和储存大小的考虑,Windows 98继续支持旧式的点阵字体。我会在第十七章讨论字体。,GDI基本图形,映像模式和变换 虽然内定以图素为单位进行绘图,但是您并非局限于此。GDI映像模式允许您以英寸(或者甚至以几分之一英寸)、毫米或者任何您想使用的单位来绘图(Windows NT还支持传统的以三乘三矩阵表示的坐标变换, 这允许倾斜和旋转图形对象。 MetafileMetafile是以二进制形式储存的GDI命令集合。Metafile主要用于通过剪贴板传输向量图形。第十八章会讨论metafile。 绘图区域 绘图区域是形状任意的复杂区域,通常定义为较简单的绘图区域组合。在GDI内部,绘图区域除了储存为最初用来定义绘图区域的线条组合以外,还以一系列扫描线的形式储存。您可以将绘图区域用于绘制轮廓、填入图形和剪裁。,GDI其他部分,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1