TC官方合作论坛
标题:
tc程序在高分屏(高dpi模)下的缩放模式问题
[打印本页]
作者:
winbei2010
时间:
2016-10-17 16:42
标题:
tc程序在高分屏(高dpi模)下的缩放模式问题
本帖最后由 winbei2010 于 2016-10-17 17:14 编辑
[attach]24163[/attach]
附上msdn上的描述:
1,PROCESS_DPI_AWARENESS
typedef enum _PROCESS_DPI_AWARENESS {
PROCESS_DPI_UNAWARE = 0,
PROCESS_SYSTEM_DPI_AWARE = 1,
PROCESS_PER_MONITOR_DPI_AWARE = 2
} PROCESS_DPI_AWARENESS;
2,SetProcessDpiAwareness
HRESULT WINAPI SetProcessDpiAwareness(
_In_ PROCESS_DPI_AWARENESS value
);
Return code
S_OK ,执行成功
E_INVALIDARG,执行失败,参数错误
E_ACCESSDENIED,
执行失败,返回具体错误码
根据以上win api的描述,tc目前是告诉了windows,
PROCESS_SYSTEM_DPI_AWARE
我的程序会在启动的显示器上自己支持DPI aware, 所以不需要对我进行DWM 虚拟化。 但是当我的程序被拖动到其他DPI不一样的显示器时, 请对我们先进行system DWM虚拟化缩放。
因为tc的界面压根就不支持dpi自动适配,这样的结果就造成,windows使用了xp的高dpi模式。很少有人为了这个**显示器吧。
xp下界面上控件的缩放标准不一致,各自为政,然后大小不一。。。
本来美观整洁的界面,变的扭曲变形。
我在想官方要么真的实现高dpi自动缩放,这样最好,要么就让所有控件字体都用 MS Shell Dlg2,这样dpi是不会虚,不会变形的。
再退一步,真不想费事再搞了。就把
SetProcessDpiAwareness 这个
模式改了吧
PROCESS_DPI_UNAWARE
,告诉windows 我不支持 dpi缩放。自动等比放大好了
宁可虚化也比严重变形好。高分屏以后越来越普及。 1080入门,尚且还好。2k以上tc的界面就没法看了,全靠猜。
作者:
winbei2010
时间:
2016-10-17 16:52
自己尝试用api修改,也失败。不想改软件的,也给指条路子走吧。
作者:
winbei2010
时间:
2016-10-17 17:08
@Abin
@TC管理员
@kevinqq
请关注下这个问题!
作者:
winbei2010
时间:
2016-12-1 15:20
此贴终结,已经自己修改pe文件头实现 界面等比放大,再也不神经错乱了
方法使用
resource hacker打开生成后的 exe文件,
24-1-1033里面
/WindowsSettings">true</ms_windowsSettings:dpiAware>
改为
/WindowsSettings">false</ms_windowsSettings:dpiAware>
保存后,重新另存exe即可
原理,修改exe的 mianfest内的 程序dpi支持,由默认支持 true到不支持false,交由系统来等比放大。问题完美解决!
作者:
sunshadow_ja
时间:
2017-4-22 09:55
我也遇到这个蛋疼问题了,先谢谢大神。。一会去试试
作者:
rexshao
时间:
2017-8-3 15:00
[attach]25326[/attach] 也遇到同样问题搜索无果 resourcehacker 改了也无效最终这么解决了。。。。无语了
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1