【发布时间】:2021-05-09 09:58:31
【问题描述】:
我想编写一个小应用程序并决定使用 wxWidgets 来制作 UI。然而,当我从官网运行thissample 时,我发现有些文字(特别是菜单)是模糊的。我做了一些研究并尝试了一些东西(我正在寻找每个监视器 v2 DPI 意识)。这是我到目前为止尝试过的:
- 我创建了一个资源文件并从中包含 wx/msw/wx.rc,然后将 wxUSE_DPI_AWARE_MANIFEST 定义为 2(如 here 所述),完全没有任何效果。
- 我使用了 Windows 的 SetProcessDpiAwarenessContext 函数(使用 DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 作为参数)。这解决了主要问题,但现在如果我在高 DPI 显示器上启动应用程序并将窗口移动到低 DPI 显示器,菜单条目下方会出现图形故障,如 this 图像所示。
- 以上两者的组合。同样,资源文件完全没有效果,结果始终与第 2 点完全相同。
据我所知,我完全按照教程进行操作,但无法使其正常工作。如果你能给我如何让它工作的分步说明,那将是完美的,但我会很感激任何能让我更接近让它工作的提示强>。我看过的所有教程和论坛主题都不起作用或似乎不完整(其中大多数只是提到了上面的第 1 点或第 2 点)。
我在 Windows 10 机器上,wxWidgets 版本是 3.1.5(发布时的最新版本)。
PS:我想到了使用资源黑客来检查资源文件是否被包含在内。但是,为了查看任何内容,我必须包含其他资源(对吗?),这是我无法做到的(Visual Studio 无法读取它自己创建的资源文件的语言,原因超出了我的理解. 所以用纯文本编辑器以外的任何方式打开文件都会导致错误)。
【问题讨论】: