欢迎来到天天文库
浏览记录
ID:34478994
大小:641.57 KB
页数:34页
时间:2019-03-06
《第12章图形设备接口和资源new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualC++与面向对象程序设计教程第12章图形设备接口和资源地空学院地信系中国地质大学教学目标Windows的图形设备接口MFC的设备环境类和图形对象资源的概念和编程方法学习要求了解图形设备接口和资源的基本概念掌握掌握画笔、画刷、位图以及菜单等对象和资源的用途和编程方法学会简单的动画编程和DeveloperStudio的各种资源编辑器的使用方法授课内容12.1设备环境类和图形对象12.2Windows应用程序资源12.3库存图形对象12.4画笔与画刷12.5位图12.6菜单调试技术程序设计举例12.1设备环境类和图
2、形对象应用程序设备环境MFC设备环境类图形设备接口图形设备接口(GDI)设备驱动程序物理设备硬件MFC应用程序在硬件上绘图的抽象层次设备环境在Windows程序中,应用程序的输出并不直接面向物理的设备,如显示屏或打印机,而是针对一个称之为设备环境(DeviceContext)的逻辑设备进行操作,设备环境与实际设备之间的信息传送由Windows直接管理。设备环境类CDC类CPaintDCCClientDCCWindowDCCMetaFileDC图形对象类CGdiObject类CPenCBrushCfontCbitmapCp
3、aletteCRgn12.2Windows应用程序资源资源:是一种数据,它包含了决定程序的用户界面的文本和图形。资源所决定的界面元素有:菜单加速键位图、光标、图标对话框、控件字符串工具栏资源脚本文件和资源头文件资源文件.rc定义资源内容资源通过资源标识符加以区别资源头文件Resource.h定义一个项目中所有的资源标识符12.3库存图形对象CGdiObjectClassMembersCGdiObject::CreateStockObjectBOOLCreateStockObject(intnIndex);Retur
4、nValueNonzeroifthefunctionissuccessful;otherwise0.掌握SelectStockObject()方法选择相应某个预定义的库存钢笔、画笔或字体的一CGdiObject对象不必存储和恢复原来的图形对象例12-1用鼠标切换椭圆的图形参数修改文档类的定义(头文件),加入二个变量定义:classCMyDoc:publicCDocument{protected://createfromserializationonlyCMyDoc();DECLARE_DYNCREATE(CMyDoc)//Attributes
5、public:intm_nColor;CRectm_rectEllipse;//Operationspublic:…(以下省略文档类的其它定义语句)}例12-1用鼠标切换椭圆的图形参数(续1)修改文档类的OnNewDocument函数,对变量进行初始化:BOOLCMyDoc::OnNewDocument(){if(!CDocument::OnNewDocument())returnFALSE;//TODO:addreinitializationcodehere//(SDIdocumentswillreusethisdocument)m_rectEl
6、lipse=CRect(100,100,300,250);m_nColor=0;returnTRUE;}例12-1用鼠标切换椭圆的图形参数(续2)修改视图类的OnDraw函数,加入显示椭圆代码:voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereswitch(pDoc->m_nColor)//根据颜色变量值决定用不同的画刷{case0:pDC->SelectStockObject(GR
7、AY_BRUSH);break;case1:pDC->SelectStockObject(LTGRAY_BRUSH);break;case2:pDC->SelectStockObject(BLACK_BRUSH);break;}pDC->Ellipse(pDoc->m_rectEllipse);//画椭圆}例12-1用鼠标切换椭圆的图形参数(续3)用ClassWizard建立鼠标左键的消息处理函数,并加入代码voidCMyView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessag
8、ehandlercodehereand/orcalldefaultCMyDoc*pDoc=GetDocument();AS
此文档下载收益归作者所有