欢迎来到天天文库
浏览记录
ID:59268246
大小:2.28 MB
页数:118页
时间:2020-09-27
《计算机图形学MFC上机教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本章内容2.1MFC上机操作步骤2.2基本绘图函数2.3本章小结2.4习题2.2MFC上机操作步骤关于工具VisualC++6.0是目前使用极为广泛的可视化编程平台。使用VC++语言开发的图形,与使用TurboC语言开发的图形相比,不仅可以显示真彩色,而且可以实现交互式绘图。MicrosoftFoundationClassLibrary微软基类库MFC是以C++形式封装的WindowsAPI(ApplicationProgramInterface),包含了一百多个已经定义好的常用类。MFC的上机操作过程启动MicrosoftVisualC++6.0从【File】菜单中选择
2、【New】命令,弹出【New】对话框,切换到【Projects】选项卡。在左边窗口中选择MFCAppWizard(exe),在右边的Projectsname文本框中键入应用程序名,这里输入Test,在Location文本框中出现用于存放应用程序的根目录,这里设置为D:Test。其余保持默认值。如图所示。单击【OK】按钮。在对话框【MFCAppWizard-Step1】中,选中SingleDocument单选按钮,其余保持默认值,如图所示。单击【Finish】按钮结束。完成上述步骤后,应用程序Test的框架即被生成,出现程序工作区。如图所示。在工作区的【ClassView
3、】面板中显示所创建的类和成员函数在【ResourceView】面板中显示所创建的资源在【FileView】面板中显示源程序文件,主要包括程序源文件(*.CPP)、头文件(*.h)和资源文件(*.ico、*.bmp等)从【ClassView】面板可以看出CTestApp是应用的主函数类,用来处理消息。MFC中的数据是存储在CTestDoc类文档中结果的显示是在CTestView类中文档类负责管理和维护数据本身视图类负责处理用户鼠标和键盘的操作全部展开FileView面板后,显示如图的界面内容本书后续的编程过程中一般使用的是CTestView类的TestView.h头文件和T
4、estView.cpp源文件。OnDraw(CDC*pDC)函数voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);}pDC定义为CDC类的指针。pDoc通过GetDocument()函数得到了指向文档类CTestDoc的指针。OnDraw(CDC*pDC)函数voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);}ASSERT_VALID(pDoc)函数使pDoc指针
5、有效。使用pDC指针,可以对CDC类的成员函数进行操作。注意:OnDraw函数是由系统框架直接调用的,程序一运行就会自动执行。!按钮点击工具条上的“!”按钮,就可以直接编译、运行程序尽管未编写一句代码,但Test程序已经形成一个可执行程序框架返回2.2基本绘图函数在Windows平台上,应用程序的图形设备接口(GraphicsDeviceInterface,GDI)被抽象化为设备上下文(DeviceContent,DC)在微软基类库MFC中,CDC类是定义设备上下文对象的基类,所有绘图函数都在CDC基类中定义。2.2节内容2.2.1CDC类结构和GDI对象2.2.2映射模
6、式2.2.3CDC类的主要绘图成员函数2.2.4设备上下文的调用和释放2.2.5VC++绘制图形的几种方法2.2.1CDC类结构和GDI对象1.CDC类CDC类有4个派生类CClientDC类显示器客户区设备上下文类CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏的空白区域)进行绘图点(0,0)是客户区的左上角其构造函数调用GetDC函数其析构函数调用ReleaseDC函数CMetaFileDC类Windows图元文件设备上下文类CMetaFileDC封装了在一个Windows图元文件中绘图的方法图元文件是一系列与设备无关的图片的集合,由于它对图
7、像的保存比像素更精确,因而往往在要求较高的场合下使用例如,AutoCAD中的图像保存等。CPaintDC类是成员函数OnPaint中使用的显示器上下文类CPaintDC只在处理WM_PAINT消息中使用,用户一旦获得相关的CDC指针,就可以将它当做任何设备环境(包括屏幕、打印机)的指针来使用CPaintDC类的构造函数会自动调用CWnd::BeginPaintCPaintDC类的析构函数则会自动调用CWnd::EndPaintCWindowDC类整个窗口区域的显示器设备上下文类,包括客户区和非客户区CWindowDC允许在窗口
此文档下载收益归作者所有