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 ?

Comment puis-je récupérer par programme les paramètres de mise à l'échelle de l'affichage Windows ?

Mary-Kate Olsen
Libérer: 2025-01-15 10:43:49
original
742 Les gens l'ont consulté

How Can I Programmatically Retrieve Windows Display Scaling Settings?

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal