[发明专利]一种实现窗口大小位置自动调整的方法在审

专利信息
申请号: 201710017530.0 申请日: 2017-01-11
公开(公告)号: CN106897056A 公开(公告)日: 2017-06-27
发明(设计)人: 娄国栋 申请(专利权)人: 山东华软金盾软件股份有限公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 济南泉城专利商标事务所37218 代理人: 李桂存
地址: 250101 山东省济南市高新区舜华路1号齐鲁*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 实现 窗口 大小 位置 自动 调整 方法
【说明书】:

技术领域

发明涉及一种实现窗口大小位置自动调整的方法,属于计算机技术领域。

背景技术

Windows平台基于窗口界面的开发往往需要支持调整窗口的大小,主窗口大小改变后往往需要调整附着其上控件的位置或者是大小以适配主窗口的调整。不同的窗口进行不同的调整,比如按钮控件。通常只需要调整根据父窗口的改变调整按钮的位置,而编辑框控件通常的做法是在主窗口的WM_SIZE消息中和WM_SIZING消息中通过调整子控件的大小和位置来对主窗口的调整进行适配(调整位置或者大小),工作流程如附图1所示。上述方案虽然能够实现我们想要的在父窗口大小变化后调整附着其上控件的位置和大小,但是每次需要调整的时候都需要做这样的处理,非常繁琐并且容易出现问题。如附图2所示对话框,在主窗口调整大小后,编辑框1位置和高度不变,需要调整宽度;编辑框2位置不变,需要调整宽度和高度;编辑框3位置、宽度、高度都需要调整。然后三个下面三个按钮大小不变,需要调整位置。类似这样的窗口如果都是按照上述方法处理步骤会非常的繁琐,并且容易出错。

发明内容

本发明要解决的技术问题是提供一种实现窗口大小位置自动调整的方法,通过子类化的方式设置子控件调整规则,相对调用者透明的调整窗口子控件的大小和位置,自动调整窗口大小位置,高效准确,不需要分别的进行处理。

为了解决所述技术问题,本发明采用的技术方案是:一种实现窗口大小位置自动调整的方法,包括以下步骤:S01)、设置窗口调整规则,然后获取当前父窗口的尺寸、调整规则中子控件的尺寸,缓存到内存中;S02)、通过SetWindowLogPtr子类化目标窗口,截获目标窗口的WM_SIZE消息;S03)、子类化父窗口成功之后读取用户设置的规则列表,并将该窗体控件的设置参数加入全局缓存中,通过哈希表和父窗口的窗口句柄形成映射备用;S04)、在设置的窗口消息回调函数中处理WM_SIZE消息,收到该消息后,根据全局缓存中的子控件调整规则设置子控件的大小或者位置,设置完成之后通过InvalidateRect重绘窗口让调整立即生效,处理完成后从缓存中查找出该窗口子类化之前的窗口过程,继续调用该窗口过程让原来的窗口过程能够继续处理该消息;S05)、处理WM_DESTROY消息,进行内存中缓存数据的清理工作,将该窗口的缓存数据删掉。

本发明所述实现窗口大小位置自动调整的方法,设置窗口调整规则的过程为:通过id或者窗口句柄识别一个窗口,通过四个浮点型数据描述子控件的调整幅度,四个浮点型数据为子控件在左上横坐标的调整系数、左上纵坐标的调整系数、宽度调整系数和高度调整系数。

本发明所述实现窗口大小位置自动调整的方法,设置子控件在左上横坐标的调整系数为0.8,左上纵坐标的调整系数是0.6,宽度调整系数为0.7,高度调整系数为0.5。

本发明所述实现窗口大小位置自动调整的方法,获取调整规则中子控件尺寸的步骤为: 首先通过GetWindowRect接口获取控件的矩形大小,然后通过ScreenToClient接口将坐标通过相对屏幕的坐标转换为相对父窗口的坐标。

本发明所述实现窗口大小位置自动调整的方法,步骤2在窗体初始化的时候进行。

本发明所述实现窗口大小位置自动调整的方法,所述步骤1中设置多个窗口的多个子控件的窗口调整规则,通过步骤3对其进行统一的管理。

本发明所述实现窗口大小位置自动调整的方法,步骤5中,在窗口关闭的时候向该窗体发送WM_DESTROY消息。

本发明的有益效果:本发明通过子类化的方式设置子控件调整规则,相对调用者透明的调整窗口子控件的大小和位置,设置完成后不需要用户继续干预,自动的进行调整;本发明高效准确,所有的控件统一的进行处理调整,不在需要分别的进行处理;兼容性好,通过底层API实现,支持纯粹SDK开发的视图界面程序,支持MFC、WTL等框架开发的视图界面程序。

附图说明

图1为现有调整窗口大小位置的方法流程图;

图2为调整窗口大小位置过程中某一对话框的示意图;

图3为本发明所述实现窗口大小位置自动调整的方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

首先对本发明中出现的缩略语和关键术语进行解释。

窗口消息:Windows图形界面是基于消息实现的,界面方面的功能大部分是通过处理Windows消息实现的。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东华软金盾软件股份有限公司,未经山东华软金盾软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710017530.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top