大学Visual C 案例教程_16791.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学目标 Windows的图形设备接口 MFC的设备环境类和图形对象 授课内容 3.1 设备环境类和图形对象 3.2 库存图形对象 3.3 画笔与画刷 3.4 字体 3.5 绘图模式 3.6 GDI坐标系 3.7 WINDOWS应用程序资源 3.8 位图 3.9 菜单 3.10 图标、快捷键和字符串表 3.11工具条与状态条 3.12更新命令用户接口消息 3.1 设备环境类和图形对象 设备环境 图形设备接口 设备环境 在Windows程序中,应用程序的输出并不直接面向物理的设备,如显示屏或打印机,而是针对一个称之为设备环境(Device Context)的逻辑设备进行操作,设备环境与实际设备之间的信息传送由Windows直接管理。 设备环境类 CDC类 CPaintDC CClientDC CWindowDC CMetaFileDC 图形对象类 CGdiObject类 CPen CBrush CFont CBitmap CPalette CRgn 3.2 库存图形对象 virtual CGdiObject* SelectStockObject( int nIndex ); nIndex指定要创建的图形对象 图形对象 说 明 BLACK_PEN 黑笔 NULL_PEN 空笔,不画线或边框 WHITE_PEN 白笔 BLACK_BRUSH 黑色刷子 WHITE_BRUSH 白色刷子 DKGRAY_BRUSH 暗灰刷子 GRAY_BRUSH 灰色刷子 LTGRAY_BRUSH 淡灰色刷子 NULL_BRUSH 空刷子,内部不填充 ANSI_FIXED_FONT Windows固定倾角(单间隔)系统字体 ANSI_VAR_FONT Windows可变倾角(比例间隔)系统字体 DEFAULT_GUI_FONT 缺省GUI字体(如菜单和对话框字体) SYSTEM_FONT 系统字体 不必存储和恢复原来的图形对象 【例】 用鼠标切换椭圆的图形参数 修改文档类的定义(头文件),加入二个变量定义: class CMyDoc : public CDocument { protected: // create from serialization only CMyDoc(); DECLARE_DYNCREATE(CMyDoc) // Attributes public: int m_nColor; CRect m_rectEllipse; // Operations public: …(以下省略文档类的其它定义语句) } 【例】 用鼠标切换椭圆的图形参数(续1) 修改文档类的OnNewDocument函数,对变量进行初始化: BOOL CMyDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) m_rectEllipse = CRect(100,100,300,250); m_nColor = 0; return TRUE; } 【例】 用鼠标切换椭圆的图形参数(续2) 修改视图类的OnDraw函数,加入显示椭圆代码: void CMyView::OnDraw(CDC* pDC) { CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here switch(pDoc-m_nColor) //根据颜色变量值决定用不同的画刷 {case 0: pDC-SelectStockObject(GRAY_BRUSH);break; case 1: pDC-SelectStockObject(LTGRAY_BRUSH);break; case 2: pDC-SelectStockObject(BLACK_BRUSH);break; } pDC-Ellipse(pDoc-m_rectEllipse); //画椭圆 } 【例】 用鼠标切换椭圆的图形参数(续3) 用ClassWizard建立鼠标左键的消息处理函数,并加入代码 void CMyView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message h

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档