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