- 主题:这里有一些Windows棋牌小游戏,在Linux下用wine也可以运行
对。win10 以后的全局缩放是后来加入的功能。可以无条件地把 exe 显示的整个窗口进行拉伸。
win7 及以前的 windows,系统的确会告诉应用当前系统的 DPI,但是怎么显示需要应用自己去算。除非 exe 的 manifest 信息里面告诉操作系统,能够接受高 DPI 信息,否则都强制拉伸。
wine 只有 win7 的高 DPI 支持,而没有 win10 以后的高 DPI 支持。
【 在 ooolinux 的大作中提到: 】
: 感觉还是wine做得不够,因为Windows可以做到
--
FROM 27.152.10.*
windows 的 exe 程序里面,可以带一些资源文件。比如 icon 之类的,后来的 win7/win10 可以带个 manifest 文件,格式是 XML 的,具体内容你可以检索一下。
里面有个条目是告诉 windows 说我这个应用是支持高 DPI 的。
此时 windows 就不会自做主张拉伸这个 exe 的窗口。
如果没有这个 manifest 文件,windows 就会强制拉伸窗口。字看起来会有点模糊。
wine 应该是还没有支持这个功能吧。这个强制拉伸听起来简单,但是在 windows 里面需要 wm 的配合,不然效率比较低。
【 在 ooolinux 的大作中提到: 】
: 不太理解这句:除非 exe 的 manifest 信息里面告诉操作系统,能够接受高 DPI 信息,否则都强制拉伸。
--
修改:hgoldfish FROM 27.152.10.*
FROM 27.152.10.*
对啊。这就是我说的,wine 对于老程序不支持整体缩放。它的行为与 win7 一致。你也可以去看看 Win7 下是啥情况。
本质原因是,老程序大多不考虑高 DPI.
但也不能棍子打死。据说是有一些老程序考虑了高 DPI.
【 在 ooolinux 的大作中提到: 】
: 我用RAD Studio编写小程序,Win11下如果窗体的属性Scaled为false就是没有缩放,Scaled为true有缩放(各种包含文字的控件,Image图像没缩放)。我发现Linux的wine的动作跟这个情况一致。
: 如果Scaled为false,但是Project Options的Manifest的DPI Awareness设为GDI Scaling,则Win11对窗口整体缩放(包含图像),而wine没有缩放(只看Scaled?)
: 如果是VC6.0和BCB6.0开发的老的小游戏,Win11对窗口整体缩放(包含图像),但是wine只缩放文字(图像还是原始像素没变)。一楼的老游戏就是这个情况。
: ...................
--
修改:hgoldfish FROM 110.81.120.*
FROM 110.81.120.*