[发明专利]一种基于Windows系统的应用程序高清晰显示方法在审
申请号: | 201711169820.3 | 申请日: | 2017-11-22 |
公开(公告)号: | CN107967162A | 公开(公告)日: | 2018-04-27 |
发明(设计)人: | 李华;余双全;孙成林;何盈丽 | 申请(专利权)人: | 深圳市富途网络科技有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F3/0484 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 windows 系统 应用程序 清晰 显示 方法 | ||
技术领域
本发明涉及应用程序显示方法,尤其涉及一种基于Windows系统的应用程序高清晰显示方法。
背景技术
高清屏一般是指2k以上分辨率的屏幕,Windows平台编程与之相对应的一个重要概念是DPI,即每英寸的像素数。在界面设计及开发时默认屏幕是DPI=96,但是当显示器能支持的分辨率越高,相应的最佳视觉效果对应的DPI值也会越大,如当分辨率为2880*1800时,Win10系统推荐最佳DPI为192,是默认的2倍。Windows下界面显示清晰与否,两个重要因素,一是:应用程序编译时,用来界面排布的DPI(=96);二是:在真正使用应该程序时,当前屏幕的DPI;前者DPI在应用程序生成后就固定了,而后者DPI是根据具体使用者的屏幕不同而不同的,如果两者不一致那么界面显示的效果就不清晰了。
现有技术中,微软DPI Virtualization也是一个为了兼容不同DPI下的处理的一个技术,从Windows vista开始微软就引入了一套机制叫DPI Virtualization,默认开启这套机制,应用程序可以依旧按DPI为96排布界面元素,所有的坐标操作及绘制都会被设定在虚拟空间,系统会负责坐标逻辑转换及窗口缩放处理,然后再整体缩放投影到真实屏幕。但是,微软DPI Virtualization这套机制极大的兼容了旧程序的运行,但其同时存在着兼容带来的弊端,其渲染原理是先绘制在虚拟空间,然后再整体缩放投影到真实屏幕,对于窗口上字体和图片,都会比较模糊。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于Windows系统的应用程序高清晰显示方法,该方法根据排布时的DPI及使用应用程序时的DPI换算比例来进行坐标逻辑转换及窗口缩放处理,使应用程序内的窗口、文字和图片高清晰显示。
为解决上述技术问题,本发明采用如下技术方案。
一种基于Windows系统的应用程序高清晰显示方法,其包括有如下步骤:步骤S1,启动应用程序;步骤S2,选择缩放方式:若选择自定义缩放比例,则执行步骤S3,若选择自适应高清屏,则执行步骤S4;步骤S3,判断是否已经自定义缩放比例fZoom?若是,则执行步骤S5,若否,则打开应用程序系统设置窗口,进行自定义缩放比例设置,设置完成后退出应用程序,并返回至步骤S1;步骤S4,计算缩放比例fZoom;步骤S5,应用程序创建窗口及控件;步骤S6,执行窗口及控件位置缩放计算、窗口及控件文字计算和窗口及控件图片计算;步骤S7,完成窗口及控件的高清显示;步骤S8,退出应用程序。
优选地,所述步骤S4中,计算缩放比例fZoom的过程包括:利用GetDeviceCaps函数计算得出当前显示器的DPI1,设定非高清屏的DPI为96,则有fZoom=DPI1/DPI=DPI1/96。
优选地,所述步骤S3中,进行自定义缩放比例设置的过程包括:所述应用程序预设有缩放比例fZoom输入框,通过向所述缩放比例fZoom输入框键入数值而实现缩放比例的自定义设置。
优选地,所述缩放比例fZoom输入框的相邻处设有最佳比例提示信息。
优选地,所述步骤S4中还包括有精度损失修复过程:所述应用程序预设有修正量S,则修复算法为PixelRound(pixel)=(pixel>0?S:-S)。
优选地,所述步骤S6中,窗口及控件位置缩放计算过程包括:设定左上角坐标点为CPoint(x,y),大小为CSize(w,h),左像素为x,上像素为y,缩放计算后用x’表示x,用y’表示y,用Point’表示CPoint(x,y),用Size’表示CSize(w,h),则有算法:x’=x*fZoom+PixelRound;y’=y*fZoom+PixelRound;Point’=(x’,y’);Size’=(w*fZoom+PixelRound,h*fZoom+PixelRound)。
优选地,所述步骤S6中,窗口及控件文字计算过程包括:设定字体大小为fSize,缩放后用fSize’表示fSize,则有算法:fSize’=fSize/(DPI1/DPI)*fZoom=fSize*fZoom/(DPI1/DPI)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市富途网络科技有限公司,未经深圳市富途网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711169820.3/2.html,转载请声明来源钻瓜专利网。