JxBrowser右键菜单位置偏移

   日期:2020-10-03     浏览:111    评论:0    
核心提示:参照demo写完右键菜单,发现菜单位置与鼠标隔着一定的距离。因为很久以前在使用VB开发屏幕取色器时碰到过类似的问题,我猜测是win10屏幕缩放的问题(用win7系统的时候没碰到过这样的问题)。桌面右键,选择“显示设置”,发现当前的缩放比例是125%,于是把坐标乘以125%,右键菜单位置正常。之后尝试使用JAVA调用windows API去获取缩放比例,折腾了一阵,发现获取的屏幕DPI值是120,和我想要的125有点差距。(DPI是什么?自行百度)由于对DPI的概念不熟,一直以为DPI就.

参照demo写完右键菜单,发现菜单位置与鼠标隔着一定的距离。因为很久以前在使用VB开发屏幕取色器时碰到过类似的问题,我猜测是win10屏幕缩放的问题(用win7系统的时候没碰到过这样的问题)。

桌面右键,选择“显示设置”,发现当前的缩放比例是125%,于是把坐标乘以125%,右键菜单位置正常。

 

之后尝试使用JAVA调用windows API去获取缩放比例,折腾了一阵,发现获取的屏幕DPI值是120,和我想要的125有点差距。(DPI是什么?自行百度)

由于对DPI的概念不熟,一直以为DPI就是屏幕缩放比例。后来偶然在百度上看到,不同的DPI对应不同的屏幕缩放比例,豁然开朗。

DPI is how scaling setting is implemented. Their relationship is:(dpi是如何实现缩放设置的。他们的关系如下:)
96 DPI = 100% scaling
120 DPI = 125% scaling
144 DPI = 150% scaling
192 DPI = 200% scaling

知道了这些,一切都好办了,不需要调用windows api,Java自带获取DPI的方法。

int dpi=Toolkit.getDefaultToolkit().getScreenResolution();
int scaling=100;
switch(dpi) {
case 120:
    scaling=125;
    break;
case 144:
    scaling=150;
    break;
case 192:
    scaling=200;
    break;
}

再用得到屏幕坐标乘以scaling除以100,使右键菜单在不同缩放比例的电脑上位置不偏移。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服