WIN32编程入门GDI绘图.ppt_第1页
WIN32编程入门GDI绘图.ppt_第2页
WIN32编程入门GDI绘图.ppt_第3页
WIN32编程入门GDI绘图.ppt_第4页
WIN32编程入门GDI绘图.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第二部分 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消息中获得的是窗口尺寸改变 后的客户区参数,如果想要画出来的图形随窗口变化,需要在该消息中使用该函数。,GDI绘图的画布,设备上显示的图形型态本身可以被分为几类: 设置像素的颜色 COLORREF SetPixel ( HDC hdc, / 设备环境句柄 int X, / 像素的x坐标 int Y, / 像素的y坐标 COLORREF crColor / 像素颜色 );,GDI基本图形像素操作,设备上显示的图形型态本身可以被分为几类: 直线和曲线 线条是所有向量图形绘制系统的基础。GDI支持直线、矩形、椭圆(包括椭圆的子集,也就是我们所说的圆)、椭圆圆周上的部分曲线即所谓的弧以及贝塞尔曲线(Bezier spline)。所有更复杂的曲线可由折线(polyline)代替,折线通过一组非常短的直线来定义一条曲线。线条用设备内容中选中的目前画笔绘制。,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坐标 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坐标 );,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) ); 线型可选参数值: 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画刷对象进行填图。这个画刷可以是实心色彩、图案(可以是一系列的水平、垂直或者对角标记)或者是在区域内垂直或者水平重复的位图图像。,GDI填充区域,HBRUSH hBrush,oldBrush; hBrush =(HBRUSH) GetStockObject(GRAY_BRUSH); oldBrush = (HBRUSH)SelectObject(hdc, hBrush); GID 绘图函数调用; SelectObject(hdc, oldBrush); /恢复原来的画笔,GDI的画刷使用系统画刷,HBRUSH CreateSolidBrush ( COLORREF crColor / 画刷颜色 ); 创建一个单颜色的画刷,即填充区域内使用单一指定的颜色填充 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 绘图函数调用; SelectObject(hdc, oldBrush); /恢复原来的画笔 DeleteObject(hdc, hBrush);,GDI的画刷创建画刷,位图 位图是位的矩形数组,这些位对应于显示设备上的图素,它们是位映像图形的基础工具。位图通常用于在视讯显示器或者打印机上显示复杂(一般都是真实的)图像。位图还可以用于显示必须快速绘制的小图像(诸如图标、鼠标光标以及在应用工具条中出现的按钮等)。GDI支持两种型态的位图旧式的(虽然还非常有用)设备相关位图,是GDI对象;和新的(如Windows 3.0的)设备无关位图(或者DIB),可以储存在磁盘文件中。 文字文字的数学味道不像计算机图形的其它方面那样浓。文字和几百年的传统印刷术有关,它被许多印刷工人看作为一门艺术。因此,文字通常不仅是所有的计算机图形系统中最复杂的部分,而且(如果识字还是社会基本要求的话)也是最重要的部分。用于定义GDI字体对象和取得字体信息的数据结构是Windows中最庞大的部分之一。从Windows 3.1开始,GDI开始支持TrueType字体,该字体是在填入轮廓线基础上建立的,这样的填入轮廓线可由其它GDI函数处理。依据兼容性和储存大小的考虑,Windows 98继续支持旧式的点阵字体。我会在第十七章讨论字体。,GDI基本图形,映像模式和变换 虽然内定以图素为单位进行绘图,但是您并非局限于此。GDI映像模式允许您以英寸(或者甚至以几分之一英寸)、毫米或者任何您想使用的单位来绘图(Windows NT还支持传统的以三乘三矩阵表示的坐标变换, 这允许倾斜和旋转图形对象。 MetafileMetafile是以二进制形式储存的GD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论