防止 wxWidgets 应用程序在更高的 dpi 上缩放大小
Prevent wxWidgets app from scaling sizes on higher dpi
我正在编写一个 wxWidgets (3.1.0) 应用程序,它应该可以在 windows 和 mac 上运行。
在 windows 上,当我将文本的缩放比例设置为超过 100% 时,我的控件的大小变得一团糟。我有一个 dpi 清单,上面写着我的应用程序是 dpi 感知的。我还在我的对话框上设置了字体像素大小,这在一定程度上起作用了。当我从代码中设置某些元素的大小时,它会被调整为我需要的像素大小,但 xrc 文件中设置的任何大小都会按比例放大。此外,当我尝试减小任何 wxSpinCtrl 的大小时,它通常可以减小到某个点,但只有文本框变小,按钮仍然不成比例地变大。那么有没有办法告诉我的应用程序不要缩放任何尺寸,只是让所有内容的像素大小与正常 dpi 上的像素大小完全相同(尽管我的应用程序在高分辨率下看起来会很小)?
没有办法阻止使用 wxWidgets 应用适当的缩放 API 我认为这不会改变,因为它似乎没有任何意义。
然而,在定义了 wxHAVE_DPI_INDEPENDENT_PIXELS
的情况下重建 wxWidgets 应该会诱使库认为底层图形工具包已经缩放了像素值,因此阻止它自己进行缩放。我从来没有测试过这个,但是,AFAICS,这应该会产生你想要的结果。
尽管如此,让我重申一下,你想要的是完全错误的,解决这个问题的真正方法是向决定这样做的人解释。
我正在编写一个 wxWidgets (3.1.0) 应用程序,它应该可以在 windows 和 mac 上运行。 在 windows 上,当我将文本的缩放比例设置为超过 100% 时,我的控件的大小变得一团糟。我有一个 dpi 清单,上面写着我的应用程序是 dpi 感知的。我还在我的对话框上设置了字体像素大小,这在一定程度上起作用了。当我从代码中设置某些元素的大小时,它会被调整为我需要的像素大小,但 xrc 文件中设置的任何大小都会按比例放大。此外,当我尝试减小任何 wxSpinCtrl 的大小时,它通常可以减小到某个点,但只有文本框变小,按钮仍然不成比例地变大。那么有没有办法告诉我的应用程序不要缩放任何尺寸,只是让所有内容的像素大小与正常 dpi 上的像素大小完全相同(尽管我的应用程序在高分辨率下看起来会很小)?
没有办法阻止使用 wxWidgets 应用适当的缩放 API 我认为这不会改变,因为它似乎没有任何意义。
然而,在定义了 wxHAVE_DPI_INDEPENDENT_PIXELS
的情况下重建 wxWidgets 应该会诱使库认为底层图形工具包已经缩放了像素值,因此阻止它自己进行缩放。我从来没有测试过这个,但是,AFAICS,这应该会产生你想要的结果。
尽管如此,让我重申一下,你想要的是完全错误的,解决这个问题的真正方法是向决定这样做的人解释。