VC中MFC绘图详细教程

上传人:大米 文档编号:567897838 上传时间:2024-07-22 格式:PPT 页数:16 大小:364.02KB
返回 下载 相关 举报
VC中MFC绘图详细教程_第1页
第1页 / 共16页
VC中MFC绘图详细教程_第2页
第2页 / 共16页
VC中MFC绘图详细教程_第3页
第3页 / 共16页
VC中MFC绘图详细教程_第4页
第4页 / 共16页
VC中MFC绘图详细教程_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《VC中MFC绘图详细教程》由会员分享,可在线阅读,更多相关《VC中MFC绘图详细教程(16页珍藏版)》请在金锄头文库上搜索。

1、1第十章第十章 图形设备接口图形设备接口中国地质大学信息工程学院中国地质大学信息工程学院林伟华林伟华Visual C+ 前一页 休息2本章主要内容本章主要内容l设备环境设备环境lGDIGDI对象对象l使用画笔使用画笔l使用画刷使用画刷l输出文本输出文本l映射模式映射模式l显示位图显示位图 前一页 休息3GDIlGDI(Graphics Device Interface) (1)GDI和和Windows 设备驱动程序来支持设备驱动程序来支持设备无关性。设备无关性。 (2)负责系统与用户或绘图程序之间的信)负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文息交换,并控制在输出设

2、备上显示图形或文字。字。 (3)应用程序主窗口、菜单、对话框都由)应用程序主窗口、菜单、对话框都由GDI绘制绘制 GDI 前一页 休息4设备环境设备环境 设设备备环环境境l设备环境设备环境(Device Context)(有译为设备描述(有译为设备描述表、设备上下文表、设备上下文)l(1)是绘图属性是绘图属性(字体、颜色等字体、颜色等)和方法和方法(各种绘图各种绘图函数函数)的集合的集合l(2)是一个用来确定或改变任何设备的是一个用来确定或改变任何设备的GDI输出输出位置和形象的属性集合位置和形象的属性集合lCDC类类lCClientDC CWindowDC CPaintDC CMetaFil

3、eDC 前一页 休息5l(1)CWindowDC 和和CClientDC CPaintDC区别区别lCWindowDC提供客户区和非客户区画图的设备环境;提供客户区和非客户区画图的设备环境;坐标原点在屏幕左上角坐标原点在屏幕左上角lCClientDC CPaintDC提供画图的设备环境;坐标原提供画图的设备环境;坐标原点在客户区左上角点在客户区左上角l(2) CClientDC 和和CPaintDC区别区别lCPaintDC是响应是响应WM_PAINT消息,用在消息,用在OnPaint()函数中;只支持屏幕显示函数中;只支持屏幕显示lCClientDC不响应不响应WM_PAINT消息,只担负此

4、时的消息,只担负此时的绘图工作;支持屏幕显示,也支持打印绘图工作;支持屏幕显示,也支持打印lCDC常用函数(参见常用函数(参见MSDN)设备环境设备环境 设设备备环环境境 前一页 休息6l获取设备环境获取设备环境l(1)使用使用GetDC()函数函数l CDC *CWnd GetDC()l int ReleaseDC(CDC * pDC ) l(2)直接构造直接构造CDC对象对象l 用声明一个用声明一个CDC类或其派生类对象的方式来类或其派生类对象的方式来获取设备环境获取设备环境l CClientDC dc(CWnd *)设备环境设备环境 设设备备环环境境 前一页 休息7lGDI对象提供更丰富

5、的图形操作函数,设备对象提供更丰富的图形操作函数,设备环境类提供函数进行简单的图形绘制环境类提供函数进行简单的图形绘制lCGdiObjectl CBitmapl CBrushl CPalettel CPenl CRgnGDI对象对象 GDI对对象象 前一页 休息8使用画笔、画刷使用画笔、画刷 使使用用画画笔笔、画画刷刷l(1)构建画笔、画刷构建画笔、画刷l CPen( );l CPen( int nPenStyle, int nWidth, COLORREF crColor ); CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrus

6、h, int nStyleCount = 0, const DWORD* lpStyle = NULL );l nPenStyle:参看课本:参看课本P146l nWidth: 1时,第一个参数中的时,第一个参数中的PS_DASH(虚线虚线)、PS_DOT(点线点线)、PS_DASHDOT(点划线点划线)、PS_DASHDOTDOT(双点划线双点划线)无效无效l crColor:RGB(255,255,255)颜色颜色lCBrush( COLORREF crColor );CBrush( int nIndex, COLORREF crColor );CBrush( CBitmap* pBitm

7、ap );l crColor:RGB(255,255,255)颜色颜色l nIndex:画刷阴影线风格:画刷阴影线风格 l pBitmap:位图画刷:位图画刷 前一页 休息9l(2)选入画笔:将该画笔选入到设备环境中选入画笔:将该画笔选入到设备环境中l CPen * SelectObject(CPen * pPen)l CBrush * SelectObject(CBrush * pBrush)l virtual CFont * SelectObject(CFont * pFont)l int SelectObject(CRgn * pRgn)l(3)调用绘图函数输出调用绘图函数输出使用画笔、

8、画刷使用画笔、画刷 使使用用画画笔笔、画画刷刷 前一页 休息10输出文本输出文本 输输出出文文本本 (1)声明字体对象声明字体对象 CFont NewFont; (2)创建字体创建字体CreateFont( int nheight,int nWidth,/高,宽 int nEscapement, /每行文字相以于页底的角 int nOrienation, /每个. DWORD nWeight , /字体粗细 DWORD dwltalic, /非零表示倾斜 DWORD dwUnderline, /非零表示下划线 DWORD dwStrikeout, /非零表示中划线 DWORD dwCharse

9、t, /字符集 DWORD dwOutputPrecision, /输出精度 DWORD dwClipPrecision, /剪裁精度 DWORD dwQuality, /输出质量 DWORD dwPitchAndFamily, /字体系列 DWORD lpszFaceName/字体名称 ; 前一页 休息11 NewFont. CreateFont()(3)将新字体选入设备环境将新字体选入设备环境 pDC-SelectObject() (4)用用TextOut()输出输出l 输出文本输出文本 输输出出文文本本 前一页 休息12映射模式映射模式l坐标系统可分为逻辑坐标、设备坐标坐标系统可分为逻辑

10、坐标、设备坐标. 窗口:窗口:逻辑坐标系上程序员设置的一个区域。逻辑坐标系上程序员设置的一个区域。 视口:视口:实际输出设备(物理设备坐标系)上程序员设定实际输出设备(物理设备坐标系)上程序员设定的一个区域。的一个区域。l映像模式的设置映像模式的设置 SetMapMode(hdc,nMapMode); /设置映像模式设置映像模式 nMapMode=GetMapMode(hdc); /得到映像模式得到映像模式 SetWindowExtEx(HDC hdc,int nHeight,int nWidth,LPSIZE lpSize) /设置窗口区域设置窗口区域 SetViewportExtEx(HD

11、C hdc,int nHeight,int nWidth,LPSIZE lpSize) /设置视口区域设置视口区域 SetWindowOrgEx(HDC hdc,int x,int y, LPPOINT lpPOINT) /设置窗口原点设置窗口原点 逻逻辑辑坐坐标标、设设备备坐坐标标 前一页 休息13程序员直接在一个统一的逻辑坐标系中进行图形的绘制和程序员直接在一个统一的逻辑坐标系中进行图形的绘制和操作,而不考虑输出坐标系的情况。操作,而不考虑输出坐标系的情况。映像模式定义了将逻辑坐标转为设备的度量单位以及设备映像模式定义了将逻辑坐标转为设备的度量单位以及设备的的x、y方向。方向。 映像模式映

12、像模式 将一个逻辑坐标映像为将一个逻辑坐标映像为 坐标系设定坐标系设定lMM_ANISOTROPIC 系统系统 可选可选lMM_ISOTROPIC 系统确定系统确定 可选可选lMM_HIENGLISH 0.001英寸英寸 x向右向右y向上向上lMM_HIMETRIC 0.01毫米毫米 x向右向右y向上向上lMM_LOENGLISH 0.01英寸英寸 x向右向右y向上向上lMM_LOMETRIC 0.1毫米毫米 x向右向右y向上向上lMM_TEXT 1个像素个像素 x向右向右y向下向下lMM_TWIPS 1/1440英寸英寸 x向右向右y向上向上映射模式映射模式 映映射射模模式式 前一页 休息1

13、4显示位图显示位图l从资源中加载位图从资源中加载位图l(1)声明声明Cbitmap对象,并从资源中载入位图对象,并从资源中载入位图l CBitmap bitmap;l bitmap.LoadBitmap(IDB_BITMAP);l(2)创建一个兼容的创建一个兼容的DCl CDC dc;l dc.CreateCompatibleDC(pDC);l(3)将位图选入兼容将位图选入兼容DCl dc.SelectObject(&bitmap);l(4)获取位图信息获取位图信息l BITMAP bmInfo;l bitmap.GetObject(sizeof(bmInfo),&bmInfo);l(5)使用

14、使用BitBlt()显示位图显示位图l pDC-BitBlt(); / 该函数要用到位图该函数要用到位图bmInfo信息信息 显显示示位位图图 前一页 休息15lBitBlt():按位图原来的比例显示位图:按位图原来的比例显示位图lStretchBlt():可对位图进行放大或压缩:可对位图进行放大或压缩l从文件中加载位图从文件中加载位图l CBitmap bitmap;l HBITMAP hbitmap = (HBITMAP)LoadImage(l NULL,l “AAA” /位图文件名位图文件名l IMAGE_BITMAP /图象类别图象类别l 0,0, /宽度和高度宽度和高度l LR_LOADFROMFILE /从文件加载标志从文件加载标志l )l bitmap.Attach(hbitmap);显示位图显示位图 显显示示位位图图

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号