[z]DLL封装框架视图经验总结二

本文探讨了使用动态链接库(DLL)封装框架视图的技术意义,包括应对多样需求、方便划分业务逻辑等,并详细介绍了实现过程,如在单文档工程中调用DLL、销毁窗口防止内存泄露等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文档下载:http://www.ctdisk.com/file/1758326

现在说说如何外部调用。新建一个调用该DLL的单文档工程Ower,现在Ower工程,在框架类CMainFrame类定义一个CCustomManage2类的私有变量:


  1. private:
  2. CCustomManage2m_CustomManage2;


然后新建一个菜单项,在菜单项的命令响应函数里弹出新建窗口,具体代码如下:



Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

下面谈谈如何销毁窗口防止内存泄露。这时我们需要考虑用户是怎么关闭新建窗口,用户就是要么是单击调用程序的关闭按钮把两个窗口都关闭;要么单击DLL弹出的新建窗口的关闭按钮。用户先关新建窗口,再关闭调用程序,这个是没有内存泄露的。但是如果用户一下关闭应用程序(就是同时关闭两个窗口),就会出现内存泄露。为此我们需要重写CMainFrame类的WM_CLOSE消息:




这样就可以确保内存没有泄露。效果图如下:


DLL封装框架视图经验总结二



上面可以看作是在DLL封装了一个单文档程序。从这个角度看,这种方式比动态新建窗口看起来更为自然一下。另外举一反三,可以封装MDI程序,只须将上面的自定义的文档模板类派生自CMultiDocTemplate。有兴趣的朋友可以去做一下。

使用DLL封装框架视图的意义在哪里呢?其实是可以应对更多样的需求,很多时候仅仅是对话框并不满足需求,比如图像处理软件中往往是多视图的,当然也可以在对话框绘图,但感觉不如在视图类画图方便,对话框没有大小化窗口的按钮,这也是一个缺点。在一个大系统里,使用DLL封装框架视图可以很方便地将多个业务逻辑划分为多个模块,开发起来更为方便。


教程下载


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值