APP下载

基于MFC框架的MDI技术应用

2017-07-16陈义余震

中国新通信 2017年11期

陈义+余震

【摘要】 探讨基于MFC应用程序框架中的MDI技术,针对现有的MFC框架中的MDI技术的特点和不足,提出了一种为功能需求特别定制的MDI框架技术解决方案,设计者重点介绍在visual studio 2008开发环境中构建基于MFC定制的MDI框架应用程序,并给出了基于该解决方案的具体示例代码。

【关键词】 MFC框架 MDI编程 visual studio2008 windows

一、MFC框架的MDI结构分析

MDI(多文档程序)模板未必需要提供一个以上的Document类型,不同的Document类型指的是不同的CDocument衍生类别,即有不同的Document Template,基于MFC框架下的MDI程序的基本结构如图1所示,框架的初始化步骤也是按照图中的顺序进行,首先产生App全局对象,然后初始化CDocTemplate對象,接着初始化CDocument对象,接着初始化CView对象,最后生成CFrameWnd对象,此时,基于MFC的MDI多文档程序模板就初始化完成了,在MFC框架中,这些初始化工作代码,visual studio 2008 已经在工程建立的时候为我生成了一个空的MDI对文档程序代码工程,原始的MDI框架,只留给开发人员一些固定的接口,接口的实现采用C++的虚函数实现,开发人员根据自己项目需求,在自己的项目工程类中实现重写接口函数,完成自身的程序功能。

二、基于MFC框架的MDI结构定制实现

基于MFC原生的MDI架构中留给开发者的接口都是固定的不足,无法满足现有应用系统的不同需求,笔者针对这个不足,提出了一个定制解决方案,将原生的MFC的MDI

多文档程序的初始化流程重写,在初始化模板中加入自己的定制函数,让应用程序能在MDI基础之上拥有自身的运行效果。

2.1定制方案的设计

硬盘监控预警系统,在保证功能的前提下,注重运行的安全稳定性,是一个非常复杂的监测系统,集成了十多种技术手段,其中有多项技术属于公司内部技术,下面将详细阐述系统的功能及其设计方案。

2.1.1 磁盘监测扫描

监测扫描技术主要实现客户端的硬盘监测扫描功能,客户端采用是后台运行该功能,是整个项目产品的基本核心技术。

2.1.2 硬盘使用寿命判断预警

磁盘寿命预警是项目产品的核心功能,采用数据处理算法,对客户端扫描得到的数据进行处理,得出三种预警方式反馈给服务器端,该技术环节的核心是数据处理算法,针对预警系统特点,做了特定优化,提高磁盘预警的可靠性。

2.1.3 硬盘工作状态展现

硬盘监测预警系统V1.0第三个核心功能,实现监测对象分类管理与查看,以及对监测对象硬盘信息的日志历史存储,功能界面被放在服务器端程序中,主要是对数据库的操作,以及信息的处理、分类、显示三个主要方面。其中对于硬盘SMART信息的获取,解析,属于该功能的核心技术。

2.1.4 硬盘重要数据备份预警提醒机制

该功能的设计,针对有红色预警的客户端,预警提醒客户端,及时备份硬盘中重要的数据,同时也通知服务器端管理,对红色预警的客户端,及时进行硬盘更换,起到系统预警的正真目的---避免重要数据丢失的目的。

2.1.5 内网硬盘监测信息分类管理

该功能属于硬盘监测信息解析展示的一个衍生功能,当监测对象的规模庞大,服务器端能通过硬盘监测信息分类管理功能来分类查看,提高了管理员工作效率,主要的分类依据是根据客户端所属的部门划分的。

2.1.6 服务器对客户端的控制调度

针对项目产品的特殊需求,设计必须遵循以服务器端为主导,客户端为后台静默运行的机制,给出了三种监测机制,服务器端程序,通过这三种监测模式,对客户端拥有完全控制权,比客户端空闲扫描优先级高。

2.1.7 相关升级预留接口设计

针对项目产品的延续性需求,产品的系统架构预留了升级接口,包括四个功能接口,硬盘固件区监控接口,硬盘硬实时监控接口,硬件监控卡接口,以及一个备用升级接口,该设计是预警系统架构设计的一个重要组成部分。

2.1.8系统界面设计

针对产品用户的需求,系统的客户端使用应尽量避免用户参与,服务器端和客户端的程序操作应该简洁高效,计划对产品进行用户的交互式测试,保证服务器与客户端的交互控制更加人性化,简洁化,达到产品初期的用户需求。根据项目需求,产品整体架构采用客户端服务器模式,其中客户端为后台开机自动运行模式,服务器端为界面运行,数据库采用后台管理,该产品也会用订制的一套功能按钮图标和产品Logo。

总结:ASIP系统级设计方法的核心是系统级描述语言,传统的设计语言并不适合用于算法级和行为级的描述,它是面向低抽象级的。作者基于设计方法发展趋势,提出了基于ADL描述的系统级设计方法,与传统的设计方法比较,避开了不足,提高了ASIP专用处理器的设计效率,设计者在ADL语言类型的选取上还有待进一步研究,不同类型的ADL描述语言对整个系统的运行效率影响有待估计。