大学Visual C 案例教程培训教案.pptVIP

  • 0
  • 0
  • 约7.44千字
  • 约 36页
  • 2017-02-08 发布于江苏
  • 举报
教学目标 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)

1亿VIP精品文档

相关文档