[z]DLL封装框架视图经验总结二
2011-10-16 20:10
218 查看
文档下载:http://www.ctdisk.com/file/1758326
现在说说如何外部调用。新建一个调用该DLL 的单文档工程Ower ,现在Ower 工程,在框架类 CMainFrame 类定义一个CCustomManage2 类的私有变量:
view plaincopy to clipboardprint?
private:
CCustomManage2 m_CustomManage2;
然后新建一个菜单项,在菜单项的命令响应函数里弹出新建窗口,具体代码如下:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4
下面谈谈如何销毁窗口防止内存泄露。这时我们需要考虑用户是怎么关闭新建窗口,用户就是要么是单击调用程序的关闭按钮把两个窗口都关闭;要么单击DLL 弹出的新建窗口的关闭按钮。用户先关新建窗口,再关闭调用程序,这个是没有内存泄露的。但是如果用户一下关闭应用程序(就是同时关闭两个窗口),就会出现内存泄露。为此我们需要重写 CMainFrame类的WM_CLOSE 消息:
这样就可以确保内存没有泄露。效果图如下:
![](http://usera.imagecave.com/clever101/Program2/DLL%20Package%20Framewnd2.JPG)
上面可以看作是在DLL 封装了一个单文档程序。从这个角度看,这种方式比动态新建窗口看起来更为自然一下。另外举一反三,可以封装MDI 程序,只须将上面的自定义的文档模板类派生自CMultiDocTemplate 。有兴趣的朋友可以去做一下。
使用DLL 封装框架视图的意义在哪里呢?其实是可以应对更多样的需求,很多时候仅仅是对话框并不满足需求,比如图像处理软件中往往是多视图的,当然也可以在对话框绘图,但感觉不如在视图类画图方便,对话框没有大小化窗口的按钮,这也是一个缺点。在一个大系统里,使用DLL 封装框架视图可以很方便地将多个业务逻辑划分为多个模块,开发起来更为方便。
教程下载
现在说说如何外部调用。新建一个调用该DLL 的单文档工程Ower ,现在Ower 工程,在框架类 CMainFrame 类定义一个CCustomManage2 类的私有变量:
view plaincopy to clipboardprint?
private:
CCustomManage2 m_CustomManage2;
然后新建一个菜单项,在菜单项的命令响应函数里弹出新建窗口,具体代码如下:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4
下面谈谈如何销毁窗口防止内存泄露。这时我们需要考虑用户是怎么关闭新建窗口,用户就是要么是单击调用程序的关闭按钮把两个窗口都关闭;要么单击DLL 弹出的新建窗口的关闭按钮。用户先关新建窗口,再关闭调用程序,这个是没有内存泄露的。但是如果用户一下关闭应用程序(就是同时关闭两个窗口),就会出现内存泄露。为此我们需要重写 CMainFrame类的WM_CLOSE 消息:
这样就可以确保内存没有泄露。效果图如下:
上面可以看作是在DLL 封装了一个单文档程序。从这个角度看,这种方式比动态新建窗口看起来更为自然一下。另外举一反三,可以封装MDI 程序,只须将上面的自定义的文档模板类派生自CMultiDocTemplate 。有兴趣的朋友可以去做一下。
使用DLL 封装框架视图的意义在哪里呢?其实是可以应对更多样的需求,很多时候仅仅是对话框并不满足需求,比如图像处理软件中往往是多视图的,当然也可以在对话框绘图,但感觉不如在视图类画图方便,对话框没有大小化窗口的按钮,这也是一个缺点。在一个大系统里,使用DLL 封装框架视图可以很方便地将多个业务逻辑划分为多个模块,开发起来更为方便。
教程下载
相关文章推荐
- DLL封装框架视图经验总结二
- DLL封装框架视图经验总结二
- DLL封装框架视图经验总结二
- DLL封装框架视图经验总结
- DLL封装框架视图经验总结
- DLL封装框架视图经验总结<一>
- [z]DLL封装框架视图经验总结-
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
- (转)基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度
- (转)基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用
- MFC多文档视图界面(MDI)搭建图像处理框架程序总结
- 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
- 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
- 关于如何学习一个框架的经验总结
- 基于Metronic的Bootstrap开发框架经验总结(10)--优化Bootstrap图标管理
- 服务器框架MINA使用经验总结
- 基于MVC+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
- 基于MVC+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码
- 基于Metronic的Bootstrap开发框架经验总结(13)--页面链接收藏夹功能的实现2(利用Sortable进行拖动排序)
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用