J'ai une application MFC qui a la prise en charge MFC DPI par défaut: elle est très sensible au DPI, mais pas au moniteur DPI. Windows 10 version 1703 a ajouté le support pour System (enhanced) DPI scaling. J'ai activé ce mode à partir de Windows Explorer dans les paramètres de compatibilité .exe, et cela fonctionne pour mon application.Mise à l'échelle DPI du système améliorée avec VS2017
Idéalement, je rendrais l'application entièrement compatible DPI multi-moniteur, mais c'est une bonne quantité de travail. Donc, à la place, je veux dire au système d'exploitation d'utiliser la mise à l'échelle DPI (améliorée) du système pour mon application, si le système d'exploitation le prend en charge. Le manifeste des applications le permet-il, et si oui, qu'est-ce qui doit être ajouté ou modifié?
En outre, comment puis-je modifier le manifeste? Actuellement, j'utilise la structure de projet Visual Studio 2017 MFC par défaut, qui n'a pas de fichier manifeste dans mon projet. Au lieu de cela, le contenu du manifeste est spécifié en tant que propriétés du projet et le manifeste est généré avec mt.exe. Puis-je injecter une modification avec mt.exe? Si je dois remplacer le manifeste par un manifeste personnalisé, quel est le moyen le plus simple?
Oui, vous pouvez [activer ce paramètre via votre manifeste] (https://blogs.windows.com/buildingapps/2017/05/19/improving-high-dpi-experience-gdi-based-desktop-apps/) (L'exemple est quelque part vers la fin de cet article). – zett42
Il semble que j'ai besoin des éléments 'asmv3: application',' asmv3: windowsSettings' et 'gdiScaling'. Puis-je les ajouter en tant que changement incrémentiel avec l'approche de génération automatique de mt.exe, ou dois-je explicitement déclarer le manifeste entier à la main? –
Vous pouvez ajouter ceci comme modification incrémentielle via les paramètres du projet> outil manifeste> fichiers manifestes supplémentaires. Les fichiers définis ici sont "fusionnés" avec le fichier généré automatiquement. – zett42