visual+c++60可视化编程2.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:60 大小:184KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

visual+c++60可视化编程2.ppt

visual+c++60可视化编程2.ppt

预览

免费试读已结束,剩余 50 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实例47SDI应用程序框架项目工作区类视图文件视图资源视图文件组成StdAfx.h和StdAfx.cpp包含程序预编译的头文件Resource.h包含所有资源符号定义的标准头文件。program47.rc包含资源描述信息的资源文件---图标、位图和光标等。program47.rc2包含不能在集成开发环境中直接编辑的资源program47.ico是应用程序的图标文件。program47.bmp是包含工具栏按钮的位图文件,可以在集成环境中进行编辑。Readme.txt是应用程序描述文件,对AppWizard生成的原文件进行描述用DeveloperStudio建立项目DeveloperStudio会创建很多中间文件一。应用程序框架应用程序的体系结构与基于框架窗口的程序框架有关的MFC类结构CCmdTarget类CWinThread类CWinApp类CWnd类CFrameWnd类基于框架窗口的应用程序结构的类关系程序执行过程WinMain函数CWinApp对象InitInstance成员函数Run及ExitInstance成员函数主边框窗口CProgram47Frame类:此类的对象代表着应用程序的主窗口。它的构造函数调用基类CFrameWnd的Create函数创建具体的窗口结构。(程序处理举例)CProgram47Frame::OnLButtonDown函数:消息处理机制,当鼠标坐键被按下这一事件被映射到CProgram47Frame的OnLButtonDown函数上,进行消息处理。视图类OnPaint()是当视类窗口需要在屏幕上输出时被调用,负责完成窗口的屏幕输出显示工作;OnPrint()是当打印一页时被调用,负责完成向某页打印纸上打印。这两个函数的缺省实现中包含了对OnDraw(CDC*pDC)的调用。程序运行过程分析④CProgram47App::InitInstance成员函数:发现theApp后自动调用重载的虚函数InitInstance来完成主窗口的构造和显示工作。记住这个函数。⑤CWinApp::Run成员函数:WinMain在调用InitInstance之后紧接着调用Run函数,它被隐藏在基类中负责传递应用程序的消息给相应的窗口。(完成了windowsAPI中函数GetMessage(),TranslateMessage()和DispatchMessage()的功能。)OnIdle()是在Run()的空闲时间得到执行。当OnIdle()接收到消息后,转送到Run()进行处理。ExitInstance()用于在程序运行实例终止时,进行相关资源的清理及释放。⑥关闭应用程序:用户关闭应用程序时会有一系列事件发生。首先CProgram47Frame对象被删除,然后退出Run,进而退出WinMain,最后删除CProgram47App对象。程序的死亡:CWinApp::Run收到WM-QUIT后会结束内部之消息循环,然后调用ExitInstance,这是CWinApp的一个虚拟函数;如果CMyWinApp改写了ExitInstance,那么CWinApp::Run所调用的就是CMyWinApp::ExitInstance,否则就是CWinApp::ExitInstance最后回到AfxWinMain,执行AfxWinTerm,结束程序。MFC应用程序编程体现了几个特性:封装构成MFC框架的是MFC类库。MFC类库是C++类库。这些类封装了Win32应用程序编程接口、封装了应用程序的概念、封装了OLE特性、封装了ODBC和DAO数据访问的功能等等,分述如下。(1)对Win32应用程序编程接口的封装用一个C++Object来包装一个WindowsObject。例如:CWnd是一个C++windowobject,它把Windowswindow(HWND)和Windowswindow有关的API函数封装在C++windowobject的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。(2)对应用程序概念的封装使用SDK编写Windows应用程序时,总要定义窗口过程,登记WindowsClass,创建窗口等等。这两个部分其实都有相当程度的不变性,MFC就是把有着相当固定行为的WinMain内部操作封装在CWinApp中;把有着相当固定行为的WndProc内部操作封装在CFrameWnd中。也就是说,CWinApp代表Windows应用程序本体,CFrameWnd代表一个主框窗口。MFC把其他许多类似的处理封装起来,替程序员完成这些工作。另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理