Maison >développement back-end >C++ >Comment puis-je récupérer par programme les paramètres de mise à l'échelle de l'affichage Windows ?
Déterminer par programme les paramètres d'affichage de Windows
Sous Windows 7 et versions ultérieures, les utilisateurs peuvent ajuster les paramètres d'affichage, tels que la taille du texte, dans le Panneau de configuration. L'accès à ces paramètres est utile pour activer ou désactiver les fonctionnalités de l'application en fonction des préférences de l'utilisateur.
Ces paramètres d'affichage peuvent-ils être récupérés par programme ?
Il s'avère que les propriétés graphics.DpiX
et DeviceCap.LOGPIXELSX
renvoient une valeur cohérente de 96 sur les appareils Surface Pro, quel que soit le niveau de zoom. Pour calculer avec précision le facteur d’échelle, une autre approche est nécessaire.
Une méthode efficace consiste à utiliser la fonction gdi32.dll
dans GetDeviceCaps
. En mesurant la hauteur logique et physique de l'écran, nous pouvons déterminer le facteur d'échelle de l'écran.
<code class="language-csharp">[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); public enum DeviceCap { VERTRES = 10, DESKTOPVERTRES = 117, } private float getScalingFactor() { using Graphics g = Graphics.FromHwnd(IntPtr.Zero); IntPtr desktop = g.GetHdc(); int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); g.ReleaseHdc(desktop); float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight; return ScreenScalingFactor; }</code>
En appelant cette fonction, nous pouvons obtenir avec précision le facteur de mise à l'échelle de l'écran, ce qui nous permet d'ajuster le comportement de l'application en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!