WIN32编程入门GDI绘.ppt

上传人:牧羊曲112 文档编号:6523535 上传时间:2023-11-08 格式:PPT 页数:18 大小:208KB
返回 下载 相关 举报
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消息中获得的是窗口尺寸改变 后的客户区参数,如果想要画出来的图形随窗口变化,需要在该消息中使用该函数。,GDI绘图的画布,设备上

2、显示的图形型态本身可以被分为几类:设置像素的颜色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坐标 int nTopRect,/包围矩形的左上角y坐标 int nRightRect,/包围矩形的右下

4、角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)GetStock

5、Object(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

6、_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(

7、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_CRO

8、SS 等,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的画刷创建画刷,位图 位图是位的矩形数组,这些位对应于显示设备上的图素,它们是位映像图形的基础工具。位图通常用于在视讯显示器或者打印机上显示复杂(一般都是真实的)图像。位图还可以用于显

9、示必须快速绘制的小图像(诸如图标、鼠标光标以及在应用工具条中出现的按钮等)。GDI支持两种型态的位图旧式的(虽然还非常有用)设备相关位图,是GDI对象;和新的(如Windows 3.0的)设备无关位图(或者DIB),可以储存在磁盘文件中。文字文字的数学味道不像计算机图形的其它方面那样浓。文字和几百年的传统印刷术有关,它被许多印刷工人看作为一门艺术。因此,文字通常不仅是所有的计算机图形系统中最复杂的部分,而且(如果识字还是社会基本要求的话)也是最重要的部分。用于定义GDI字体对象和取得字体信息的数据结构是Windows中最庞大的部分之一。从Windows 3.1开始,GDI开始支持TrueTyp

10、e字体,该字体是在填入轮廓线基础上建立的,这样的填入轮廓线可由其它GDI函数处理。依据兼容性和储存大小的考虑,Windows 98继续支持旧式的点阵字体。我会在第十七章讨论字体。,GDI基本图形,映像模式和变换 虽然内定以图素为单位进行绘图,但是您并非局限于此。GDI映像模式允许您以英寸(或者甚至以几分之一英寸)、毫米或者任何您想使用的单位来绘图(Windows NT还支持传统的以三乘三矩阵表示的坐标变换,这允许倾斜和旋转图形对象。MetafileMetafile是以二进制形式储存的GDI命令集合。Metafile主要用于通过剪贴板传输向量图形。第十八章会讨论metafile。绘图区域 绘图区域是形状任意的复杂区域,通常定义为较简单的绘图区域组合。在GDI内部,绘图区域除了储存为最初用来定义绘图区域的线条组合以外,还以一系列扫描线的形式储存。您可以将绘图区域用于绘制轮廓、填入图形和剪裁。,GDI其他部分,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号