Когато windows е настроен да "преоразмерява текста на "125%", моето Win32 приложение има своя UI (но не и неговия размер на прозореца) увеличен. Това кара текстовите низове да бъдат отрязани и UI елементите да изчезнат от ръба на прозореца.
Бих искал да предотвратя това да се случи, така че текстът да не се мащабира и приложението да се показва правилно. Тъй като инвестицията във времето, за да се получи това старо наследено приложение правилно с DPI, е твърде висока и аз просто искам да направя приложението използваемо, като попреча на Windows да наруши потребителския интерфейс чрез преоразмеряване на елементи на потребителския интерфейс.
Опитах да извикам SetProcessDPIAware() по време на стартиране и когато това не проработи, сигнализирах, че приложението е DPI Aware в своя манифест. Нито една от тези мерки обаче няма ефект.
Фрагментът на манифеста, който използвам, за да посоча осведомеността за DPI:
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<asmv3:application
xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings
xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>