编写一个mfc程序(无论复杂还是简单的)基本的步骤可以归纳为什么?

编写一个mfc程序(无论复杂还是简单的)基本的步骤可以归纳为什么?,第1张

第一步,选择文档类型。有三个选项,单文档,多文档,对话框。单文档就是像Windows记事本、Windows画图、Windows写字板这样的程序,一个程序只有一个文档处于编辑状态;多文档指的是想Word,Excel这样可以在一个MDI窗口里面同时处理多个文档的类型。对话框方式值得是像Windows扫雷、纸牌那样直接在对话框进行 *** 作的程序。 这一步还有一个选项,叫做Doc/View,指的是对于文档处理来说,MFC可以提供一个数据结构,能够自动存储、编辑、浏览文件。可根据当前编写的应用程序决定上述选项。

第二步,数据库选项。可以选择不需要数据库、只需要头文件、带支持和不带文件支持的数据视图四个选项。如果需要用数据库,那么还可以直接用Data Source来选择数据源,比如是本地数据库文件还是一个服务器上的数据库

第三步,选择文档部件。这个可能比较难于理解,需要必要的ACTIVE X支持。简单的说,就是这样的:比如,当前WORD文档需要嵌入一个EXCEL表格,然后你编辑这个WORD文档内的表格,双击后就激活了EXCEL,编辑完成后退出EXCEL,又回到了WORD,这时候数据也被更新了。这种应用程序内可以再嵌套一个应用程序的技术被微软公司称为ACTIVE X。ActiveX的类型有容器性,多服务器型,单服务器型,同时可以作为容器和服务器,等等。是哪一种应用真的需要认真学习一下。比如说上面的WORD嵌入EXCEL,那么WORD相当于容器,EXCEL相当于服务器;但是其实EXCEL被设计为同时可以作为容器和服务器,到底怎么理解,还得看你的程序的需求。至于最后两个选项,自动化和ACTIVE X,指的是您可以选择从本地计算机找到一些现成的ACTIVE X 控件插入到本工程中去,比如上面的WORD控件和EXCEL空间,当然还有很多,你如果用过VB就会更理解这个概念。

第四步,是比较简单的,就是界面上的一堆工具条怎么设计的问题,docking表示那种可以拖起来自动选择合适位置放下去的工具条;Initial Status Bar表示初始化就有状态条;Print那个表示打印和打印预览;Context那个表示根据环境变化自动提供帮助的功能;3D表示控件外观立体化;MPI表示应用WINDOWS电邮消息机制;SOCKET表示使用WINDOWS socket 2.0 TCP/IP通信。再下面一个选项可以选择外观与IE浏览器是否一致,最后一个选项可以选择菜单中显示最近打开的4个文档或者更多最近打开的文档。在Advanced高级功能中,有一些关于本工程涉及的数据文件的用法,包括文件名后缀,在windows注册表里面登记信息,主窗体边框风格等等

第五步,也算好理解,就是工程风格,是MFC标准(比如WORD)还是Windows Explore,左边带一个目录树,右边是展开选项那种,然后下面四个选项是问是不是文档中自动加注释,以及MFC随工程发布时使用的类型,是动态库还是静态库,其实这个选项意义不大,但是效率上和部署上有些差异。

第六步,也就是最后一步,选择主类的名称、主类文件名、基类、文档类等等。

上述六步,不是那么容易简单理解的,需要做几个类型的应用程序才能彻底吃透,比如WORD类型的、网络服务器类型的、数据库应用类型的、IE类型的等等,一个例子消化不了这么多内容。

凡动态分配了存储单元的变量,一旦不用,就要释放。

例如动态数组,不管用new,还是 malloc分配的。就要 delete 或 free. 这点,你会注意的。

但MFC程序有些地方 动态分配存储单元 对程序员来说,不能“明显看出”。 由于MFC程序是事件驱动程序,有许多子程序(函数)是不断循环执行的。这些 不能“明显看出”的 动态分配,正因为不会自动释放, 才会引起泄漏。

例如 CView OnDraw()里,如果你 建了一个 font, "画" 完字,不用了,就要释放。

CFont font

font.CreateFontIndirect(&lf)// 这个过程隐含了分配

....

DeleteObject(font) // 不用了,就要释放

例如, 调色盘

LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize]

....

delete[] pLP// 不用了,就要释放

例如, 句柄

HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal )// 这个过程隐含了分配

....

GlobalFree( hDIB )// 不用了,就要释放

MFC程序比较复杂,你的泄漏是怎样引起的,要自己查找。上次有位提问的朋友,就是 CFont font泄漏,没找到毛病所在,觉得复杂,找到了,觉得如此简单。

vc6下MFC通过点击菜单项d出对话框: 1、新建MFC工程,在资源中新建一个对话框,右击建立类向导,为对话框新建一个类 2、在view类中建立点击菜单项的响应函数 3、在响应函数中建立对话框的对象,调用DoModal函数d出对话框 view类cpp中要include对话框类的头文件 不会的话,联系我qq:342135961,我发给你代码 建议你看孙鑫的MFC视频,入手很快


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8158697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存