- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教学目标 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
您可能关注的文档
- 地理中图版配套课件:第21讲人地关系思想的历史演变.ppt
- 地理高考备考讲座.ppt
- 地震勘探原理及资料解释第1章地震勘探的理论基础动力学简介.ppt
- 均值的比较检验.ppt
- 坚持梦想作文讲评.ppt
- 坚强意志是成功的保证 (2).ppt
- 垄断竞争下的差异化战略.ppt
- 埃菲尔铁塔的沉思.ppt
- 城市环境污染.ppt
- 城市可吸入颗粒物的质粒DNA的评价研究.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)