ウィンドウが「テキストのサイズを「125%」に変更するように設定されている場合、Win32 アプリケーションの UI (ウィンドウ サイズではない) が拡大されます。これにより、テキスト文字列が切り取られ、UI 要素がウィンドウの端から消えます。
テキストが拡大されず、アプリが正しく表示されるように、これが起こらないようにしたいと思います。この古いレガシ アプリを適切に DPI 対応にするための時間投資は高すぎるため、Windows が UI 要素のサイズを変更して UI を壊さないようにすることで、アプリを使用できるようにしたいだけです。
起動時に SetProcessDPIAware() を呼び出してみましたが、それが機能しない場合は、アプリがマニフェストで DPI 対応であることを通知します。ただし、これらの措置はいずれも効果がありません。
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>