可视化编程课件02MF.ppt
《可视化编程课件02MF.ppt》由会员分享,可在线阅读,更多相关《可视化编程课件02MF.ppt(96页珍藏版)》请在三一办公上搜索。
1、1,第2章 MFC基础与编程方法,Visual C+6.0开发平台MFC类的组织结构MFC向导的主要功能MFC程序框架分析Windows消息机制,2,Visual C+6.0平台(1),编辑区,工作区,输出区,3,Visual C+6.0平台(2),ClassView面板列出项目中的所有类FileView面板显示项目中的所有文件ResourceView面板显示项目中的所有资源,例如Bitmap、Cursor、Dialog、Icon、Menu、Accelerator、String Table、Toolbar与Version等,4,Visual C+6.0平台(3),可创建的项目类型,5,Visu
2、al C+6.0平台(4),可创建的项目类型,6,Visual C+6.0平台(5),可创建的文件类型,7,Visual C+6.0平台(6),可创建的文件类型,8,Visual C+6.0平台(7),MFC ClassWizard,9,程序调试与运行(1),编译(Compile)链接(Link)执行(Execute)调试(Debug),工具按钮,10,程序调试与运行(2),Debugger可以完成的工作:设置断点单步执行代码监视变量、寄存器和内存查看汇编代码和调用堆栈修改代码和变量值,11,程序调试与运行(3),Start DebugGoStep IntoStep OverStep OutB
3、reak Point,12,程序调试与运行(4),例2-1,13,项目的概念(1),项目(Project)由多个源、头文件组成,以及系统提供的函数支持,编译时有很多特殊选择,例如版本、优化、链接库等项目内容存在项目文件中,由它对整个程序进行统一管理。不同版本文件后缀不同,Visual C+5.0以上为“.dsp”,14,项目的概念(2),版本类型Debug版本产生调试信息,便于程序调试与运行Release版本不产生调试信息,代码简短且经过优化,程序执行效率较高,15,项目的概念(3),Build菜单Batch Build,16,项目的概念(4),项目文件类型*.dsp 项目中所有内容*.dsw
4、 工作区中所有项目*.clw ClassWizard信息*.rc 资源描述信息Resource.h 所有资源符号定义StdAfx.h和.cpp 建立预编译头文件/res 各种资源存放的目录,17,MFC类的组织结构(1),MFC是C+语言的安全子集,也是一个应用程序框架,简化Windows编程难度MFC类是以层次结构组织,封装大部分Windows API和控件当前MFC版本包含100多个类,可实现应用程序的大部分功能,18,MFC类的组织结构(2),根类(CObject)应用程序结构类(CCmdTarget、CWinThread、CWinApp、CDocument)可视对象类(CWnd、CVi
5、ew、CMenu、CDialog、控件类、CControlBar、CGdiObject)通用类(CFile、CException、CArray),19,根类与应用程序类(1),根类CObjectCObject是MFC抽象基类,多数MFC类与用户自定义类的根类,提供编程所需的公共操作,例如对象建立与删除应用程序类CWinAppCWinApp是MFC应用程序基类,每个程序只有一个程序对象,该类是从CWinApp派生,提供程序相关操作,例如初始化、运行与终止,20,根类与应用程序类(2),CWinApp类的继承关系CCmdTarget:MFC消息映射基类CWinThread:MFC线程操作基类,21
6、,根类与应用程序类(3),CWinApp类的公有成员函数,22,根类与应用程序类(4),文档与视图文档对象由文档模板创建,管理应用程序的数据,包括文档创建、打开与保存文档模板及基类:CDocTemplate:文档模板基类CSingleDocTemplate:SDI文档模板CMultiDocTemplate:MDI文档模板CDocument:专用文档基类,23,可视对象类(1),窗口类CWndCWnd类是MFC窗口基类,实现不同类型窗口CWnd派生类CFrameWnd:单文档框架窗口类CMIDFrameWnd:多文档主框架窗口类CMIDChildWnd:多文档子框架窗口类,24,可视对象类(2)
7、,视图类CViewCView类是MFC视图基类,实现框架窗口中的客户区,25,可视对象类(3),CView派生类,26,可视对象类(4),菜单类CMenuCMenu类是MFC菜单类,实现菜单界面对话框类CDialogCFileDialog:文件存取对话框CColorDialog:颜色选择对话框CFontDialog:字体选择对话框CPrintDialog:文件打印对话框CFindReplaceDialog:文本查找对话框,27,可视对象类(5),控件类,28,可视对象类(6),控件条类CControlBarCControlBar是控件栏基类,实现工具条、状态条与浮动对话框CControlBar
8、派生类CStatusBar:状态条CToolBar:带位图按钮的工具条CDialogBar:控件条形式的浮动对话框,29,可视对象类(7),绘图对象类CGdiObjectCGdiObject是GDI基类,实现绘图对象CGdiObject派生类CBitmap:位图操作接口CBrush:画刷CFont:字体CPalette:调色板CPen:画笔CRgn:椭圆或多边型域,30,可视对象类(8),设备描述环境类CDC主要用来实现窗口绘制CDC派生类CPaintDC:绘图设备描述环境CClientDC:客户区的设备描述环境CWindowDC:窗口的设备描述环境CMetaFileDC:元文件的设备描述环境
9、,31,通用类(1),文件类CFileCFile类是文件访问基类,实现文件输入与输出操作CFile派生类CMemFile:驻内存文件访问接口CStdioFile:缓存流式文件访问接口CArchive类CFile类通常由CArchive间接访问,32,通用类(2),异常类CExceptionCNotSupportException:不支持异常CMemoryException:内存异常CFileException:文件异常CResourceException:资源异常COleException:OLE异常CDBException:数据库异常CUserException:用户操作异常,33,通用类(
10、3),模板收集类CArray:将数据存储到数组CList:将数据存储到链表CMap:关键字与数据的映射,34,OLE类,OLE是对象链接与嵌入,对象服务体系结构普通类:COleDocument、COleItem客户类:COleClientDoc、COleClientItem服务类:COleServer、COleTemplate可视编辑容器类:COleLinkingDoc数据传输类:COleDropSource、COleTarget、COleDataSource、COleDataObject对话类:COleInsertDialog,35,ODBC类,ODBC类是MFC数据库访问类,可访问支持OD
11、BC的数据库系统,完成查询、更新等操作CDatabase:连接数据源CRecordset:数据源的一组记录CRecordView:记录的表单视图CFieldExchange:支持记录字段交换CLongBinary:存储二进制对象句柄,36,MFC全局函数,以Afx为前缀的函数,37,MFC向导功能(1),第1步:应用程序类型 第2步:数据库支持,例2-2,38,MFC向导功能(2),第3步:OLE与ActiveX 第4步:用户界面,39,MFC向导功能(3),第5步:应用程序风格 第6步:MFC类选择,40,MFC向导功能(4),Single DocumentNo DatabaseNo OLE
12、Tool BarStatus BarSystem Button,41,MFC程序框架分析(1),例2-3,Windows程序核心是CWinApp,42,MFC程序框架分析(2),Test.cpp CTestApp theAppBOOL CTestApp:InitInstance()WinMain.cpp pThread-InitInstance()nReturnCode=pThread-Run()AfxWinTerm(),43,MFC程序框架分析(3),44,MFC程序框架分析(4),每次启动新的应用程序,WinMain函数都调用InitInstance()创建并注册文档模板,CSingleD
13、ocTemplate*pDocTemplate;pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CTestDoc),RUNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CTestView);AddDocTemplate(pDocTemplate);,45,MFC程序框架分析(5),装载标准文件选项创建主边框窗口,CMainFrame*pMainFrame=new CMainFrame;if(!pMainFrame-LoadFrame(IDR_MAINFRAME)return FALSE;
14、m_pMainWnd=pMainFrame;,pMainFrame-ShowWindow(m_nCmdShow);pMainFrame-UpdateWindow();,46,MFC程序框架分析(6),InitInstance():初始化应用程序Run():启动消息循环OnIdle():空闲处理ExitInstance():终止应用程序,47,文档模板(1),文档模板用于存放与文档、视图和边框窗口相关的信息CSingleDocTemplate 单文档模板CMultiDocTemplate 多文档模板传递给C*DocTemplate的资源符号串,包括7个参数,每个参数用n隔开,用GetDocStr
15、ing可获得每个参数,48,文档模板(2),资源符号串,49,窗口类与窗口对象,50,消息的概念,消息处理机制是Windows核心,它是应用程序运行的动力来源消息是系统定义的32位值,它唯一定义一个事件,向Windows系统发出一个通知,告诉应用程序某个事件发生,51,消息循环,PeekMessage:查看消息队列,只起检测作用GetMessage:查看消息队列,将消息移走PreTranslateMessage:TranslateMessage的预处理函数TranslateMessage:将虚拟键转化为字符码,例如Shift+8*DispatchMessage:消息分发到消息处理函数,52,消
16、息映射表,/TestView.hclass CTestView:public CView protected:/AFX_MSG(CTestView)afx_msg void OnLButtonDown(UINT nFlags,CPoint point);afx_msg void OnEditPaste();/AFX_MSG DECLARE_MESSAGE_MAP();/TestView.cppBEGIN_MESSAGE_MAP(CTestView,CView)/AFX_MSG_MAP(CTestView)ON_WM_LBUTTONDOWN()ON_COMMAND(ID_EDIT_PASTE,O



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化 编程 课件 02 MF

链接地址:https://www.31ppt.com/p-6251757.html