- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第04章图形
第4章 图 形 本章主要内容 Windows的图形设备接口和设备描述环境 MFC的CDC类 MFC的MFC的画笔、画刷、字体 4.1 DC和GDI DC(Device Context) 图形显示设备品种繁多,为了屏蔽不同设备之间的编程差别,Windows系统提供了一个虚拟图形显示设备,它是一个叫做图形设备描述表的数据结构,也叫图形设备描述环境(DC)。 4.1 DC和GDI GDI(Graphical Device Interface)Windows把用于改变DC属性的操作,即与绘图相关的操作封装成了函数,这些函数的集合称为图形设备接口。 此外,GDI还封装了一套用于绘图的工具(画笔、画刷等) CDC类的派生类 CPaintDC:在WM_PAINT消息处理函数OnDraw()中,提供窗口客户区的设备描述环境(例4-1) 。 CClientDC:在除WM_PAINT消息外的消息处理函数中,提供窗口客户区的设备描述环境。 CMetaFileDC:Windows图元文件的设备描述环境。 CWindowDC:整个窗口的设备描述环境。 4.3? CPen类 画笔是绘制线条的工具,它是CPen类的对象。 CPen类的构造函数为: CPen(int style,int width,COLORREF color); 4.3? CPen类 PS_SOLID PS_DASH PS_DOT PS_DASHDOT PS_DASHDOTDOT PS_NULL PS_INSIDEFRAME 显示文本 显示文本 BOOL TextOut( int x,int y, const CString str); 设置文本颜色 virtual COLORREF SetTextColor (COLORREF crColor); 获取文本颜色 COLORREF GetTextColor( ) const; 显示文本 获取文本的背景颜色 COLORREF GetBkColor( ) const; 设置文本的背景颜色 virtual COLORREF SetBkColor( COLORREF crColor ); 显示文本 设置文本字符间距 int SetTextCharacterExtra( int nCharExtra ); 获取文本字符间距 int GetTextCharacterExtra( ) const; 设置文本的对齐方式 UINT SetTextAlign( UINT nFlags ); nFlags:TA_LEFT、TA_CENTER、TA_RIGHT 字体的创建和CFont类 定义字体对象 CFont m_font; 用CreateFont函数创建新字体 BOOL CreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename ); 将字体对象载入虚拟设备环境 CFont* poldfont=pDC-SelectObject(m_font); 输出字符串 pDC-TextOut(50,50,“输出一个字符串”); 恢复旧字体 pDC-SelectObject(poldfont); 字体的创建和CFont类 typedef struct {LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; TCHAR lfFaceName[LF_FACESIZE]; } LOGFONT; 可事先将字体设置存入LOGFONT结构体,然后,使用函数 BOOL CreateFontIndirect(const LOGFONT* lpLogFont) 创建字体,这样可以使该字体设置被当前应用程序重复使用。 CClientDC类的用法 CClientDC类用于除OnDraw(
文档评论(0)