DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jsuguo
今日帖子: 31
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
女 idiocyjun (莫昔莫希) ★☆☆☆☆ -
普通会员
2018/7/4 11:20:54
标题:
XE10 如何获取win10系统的屏幕缩放比 浏览:2012
加入我的收藏
楼主: win10 高屏,有个 缩放与布局的功能
想要获取 这个 缩放比
----------------------------------------------
 √真心没有反馈,还要被人误会,老天有意作对,是因无心得罪?
 √希望一夜被毁,努力全都白费,精神濒临崩溃,可仍要去面对!
 √仰天、凝视、感喟,自觉本无地位,以为不再惧畏,可以丢掉安慰,却陷入新机危! 
          【前途最多忌讳  自诫不要后悔!】
        ∑抛弃往昔§放弃希望℃------我的名字,我的痛~
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2018/7/4 17:00:54
1楼: Win10有个新的API: GetDpiForMonitor (Shcore.dll),配合MonitorFromWindow应该可以:https://docs.microsoft.com/zh-cn/windows/desktop/api/shellscalingapi/nf-shellscalingapi-getdpiformonitor

另外,单显示器(主显示器?)可以直接查注册表:
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics的AppliedDPI属性值保留了当前设置,其值为96的整数倍。
96就对应于100%,192对应于200%,依次类推。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 thinknet (thinknet) ★☆☆☆☆ -
盒子活跃会员
2018/7/7 10:41:45
2楼: Function GetDPIRate: Double;
Var
   DC: HDC;
Begin
   DC := GetDC(0);
   Result := GetDeviceCaps(DC, LOGPIXELSX) / 96;
   ReleaseDC(0, DC);
End;
----------------------------------------------
-
作者:
男 kylix2008 (kylix2008) ★☆☆☆☆ -
普通会员
2018/7/8 19:38:30
3楼: 如何让程序在高DPI下显示自动缩放,不变形?
win10 、win7下。
----------------------------------------------
-
作者:
男 merced (merced) ★☆☆☆☆ -
普通会员
2018/7/8 23:15:03
4楼: 告诉你们一个最简单的办法
Screen.PixelsPerInch / USER_DEFAULT_SCREEN_DPI
即为屏幕的放大倍数,原始尺寸为1
其中USER_DEFAULT_SCREEN_DPI为Windows API中的常量,取值为96
获得准确值的一个前提是你的app需要声明DPI aware(即自适应不同的DPI的能力),或者通过manifest资源,或者app启动时通过API调用。否则windows会认为你的app不是DPI aware的,永远会使GetDeviceCaps(GetDC(0), LOGPIXELSX) 返回96,并自动对你的app各窗口执行插值法放缩,从而会让你的app在高DPI时变模糊
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/7/9 9:21:44
5楼: 顶楼上的科普。
这是 10.2.3 的 mianfest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>True/PM</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"
        />
        </requestedPrivileges>
    </security>
  </trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
  <application> 
    <!--The ID below indicates app support for Windows Vista -->
    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
    <!--The ID below indicates app support for Windows 7 -->
    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    <!--The ID below indicates app support for Windows 8 -->
    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    <!--The ID below indicates app support for Windows 8.1 -->
    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    <!--The ID below indicates app support for Windows 10 -->
    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>      
  </application> 
</compatibility>
</assembly>
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/7/9 9:30:12
6楼: https://docs.microsoft.com/zh-cn/windows/desktop/api/shellscalingapi/nf-shellscalingapi-getdpiformonitor
这个 API ,支持 对 显示器获取 DPI。

https://docs.microsoft.com/zh-cn/windows/desktop/hidpi/wm-dpichanged
这个消息,是显示器切换导致 DPI 切换 发的。

10.2.3 的 VCL 和 FMX 都已经应用了上述的 API 和 消息。
不过,显示效果,有时候会出问题,主要是个别地方没照顾到。基础是有了。
----------------------------------------------
(C)(P)Flying Wang
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS