[发明专利]多文档窗体中控制子窗体的方法和装置无效
申请号: | 201110155427.5 | 申请日: | 2011-06-10 |
公开(公告)号: | CN102819377A | 公开(公告)日: | 2012-12-12 |
发明(设计)人: | 李国彬 | 申请(专利权)人: | 深圳市金蝶友商电子商务服务有限公司 |
主分类号: | G06F3/048 | 分类号: | G06F3/048 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 彭愿洁;李文红 |
地址: | 518000 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文档 窗体 控制 方法 装置 | ||
技术领域
本发明涉及多文档窗体技术领域,具体涉及一种多文档窗体中控制子窗体的方法和装置。
背景技术
多文档窗体(MDI,Multiple Document Interface)是一种具有主子结构的窗体体系,每个多文档窗体必须有一个主框架窗体,主框架窗体拥有客户区窗体,每个主框架窗体都有且只有一个客户区窗体,客户区窗体是子窗体的直接父窗体,负责管理主框架窗体的客户区以及创建子窗体。用户一次可以打开多个文档,每个文档对应不同的子窗体,主框架窗体的菜单会自动随着当前活动的子窗体的变化而变化,可以对子窗体进行层叠、平铺等各种操作,子窗体可以在客户区内定位、改变大小、最大化和最小化,当最大化子窗体时,它将占满主框架窗体的整个客户区。
目前,多文档子窗体中控制子窗体的方法是通过页签控制方式来实现,用户可以通过对页签栏的操作实现对子窗体的控制,具体为:编写一个自定义控件,将自定义控件放在客户区的上方作为页签栏,页签栏上的每一个页签代表一个子窗体,自定义控件与主框架窗体进行交互,一方面通过提供操作接口接收来自于主框架窗体的子窗体的状态信息,根据子窗体的状态信息来绘制页签栏,另一方面通过抛出鼠标事件来通知主框架程序执行子窗体的控制操作,例如关闭子窗体、切换子窗体等。
采用上述页签控制方式来控制子窗体,需要增加主框架窗体的程序代码,主框架窗体和自定义控件之间必须具有很高的耦合性,并且上述方式的复用性比较低。
发明内容
本发明实施例提供一种多文档窗体中控制子窗体的方法和装置。
一种多文档窗体中控制子窗体的方法,包括:
启动主程序,获取所述主程序的界面中客户区窗体的句柄,在所述客户区窗体中分割出一个非客户区;
按照所述客户区窗体的句柄,子类化所述客户区窗体;
当弹出新的子窗体时,获取每个子窗体的信息,根据所述每个子窗体的信息在所述非客户区绘制一个用于控制所述每个子窗体的页签栏;
当鼠标操作所述页签栏时,获取所述鼠标的操作信息,当所述鼠标的操作信息会改变所述页签栏的显示状态时,则根据所述每个子窗体的信息以及所述鼠标的操作信息在所述非客户区重新绘制所述页签栏,并通知主程序根据鼠标的操作信息控制子窗体。。
一种多文档窗体中控制子窗体的装置,包括:插件接口模块,用于当主程序启动时,获取所述主程序的界面中客户区窗体的句柄,在所述客户区窗体中分割出一个非客户区,;
窗体消息控制模块,用于按照所述客户区窗体的句柄,子类化所述客户区窗体;
子窗体页签控制模块,用于当弹出新的子窗体时,获取每个子窗体的信息,根据所述每个子窗体的信息在所述非客户区绘制一个用于控制所述每个子窗体的页签栏;当鼠标操作所述页签栏时,获取所述鼠标的操作信息,当所述鼠标的操作信息会改变所述页签栏的显示状态时,则根据所述每个子窗体的信息以及所述鼠标的操作信息在所述非客户区重新绘制所述页签栏,并通知主程序根据鼠标的操作信息控制子窗体。。
本发明实施例通过插件接口模块在主程序启动时,创建子窗体页签控制模块,窗体消息控制模块通过子类化客户区窗体,捕获客户区窗体的消息,子窗体页签控制模块接收窗体消息控制模块传递过来的消息,获知客户区窗体的行为和状态,实现在非客户区显示一个用于控制子窗体的页签栏。通过在主框架窗体中挂接一个插件,主程序启动后自动实现通过页签控制方式来控制子窗体,具有高内聚、低耦合的特性,复用性高,可移植性好并可以灵活插拔。
附图说明
图1是本发明实施例提供的一种多文档窗体中控制子窗体的方法的一个流程图;
图2是本发明实施例提供的一种多文档窗体中控制子窗体的装置的逻辑结构图;
图3是本发明实施例提供的一种多文档窗体中控制子窗体的方法的插件设计类图;
图4是本发明实施例提供的一种多文档窗体中控制子窗体的方法的主程序启动卸载时序图;
图5是本发明实施例提供的一种多文档窗体中控制子窗体的方法的客户区窗体中非客户区的消息操作时序图。
具体实施方式
本发明实施例提供一种多文档窗体中控制子窗体的方法,本发明实施例还提供相应的装置。以下分别进行详细说明。
参照图1,本发明实施例提供了一种多文档窗体中控制子窗体的方法,具体可以包括如下步骤:
101、启动主程序,获取主程序的界面中客户区窗体的句柄,在客户区窗体分割出一个非客户区;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市金蝶友商电子商务服务有限公司,未经深圳市金蝶友商电子商务服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110155427.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:手持电子装置及其控制方法
- 下一篇:电容触摸屏及具有该电容触摸屏的触控装置