我有一个MFC项目。它支持40多种语言。
在我的电脑上,我有两台显示器。它们都是不同尺寸的显示器和不同的分辨率。
如果我将应用程序移动到较小的显示器上,则不会显示完整的语言菜单。我明白它会显示滚动条。为什么不呢?
我的菜单是标准菜单。没什么好看的。
我的主显示器具有更高的分辨率,我可以看到完整的菜单。
请告知。
答案 0 :(得分:3)
有不同的方法来设置DPI意识。这取决于你如何设置这个值。
点击"Project Properties"
- > "Manifest Tools"
- > "DPI Awareness"
在您的案例中可能会说"High DPI Aware"
,这可以解释问题。将其更改为"Per Monitor High DPI Aware"
"True/PM"
而不是"True"
。清单文件将是名称"myapp.exe.manifest"
,它应位于资源目录中。
<dpiAware>True/PM</dpiAware>
在您的情况下,值可能是"True"
,这可以解释问题。
SetProcessDpiAwareness
。在这种情况下,它应使用值PROCESS_PER_MONITOR_DPI_AWARE
。
您也可能正在使用SetProcessDPIAware
!不推荐使用此功能。