Comment acquérir la résolution d'écran actuelle : options de WinAPI
La détermination de la résolution d'écran actuelle dans Windows est cruciale lors du lancement d'un OpenGL plein écran fenêtre avec les mêmes dimensions que le bureau. Voici un guide complet sur la détection de la résolution d'écran à l'aide des méthodes WinAPI :
-
Résolution du moniteur principal :
- Récupérer la largeur et la hauteur en pixels en utilisant GetSystemMetrics(SM_CXSCREEN) et GetSystemMetrics(SM_CYSCREEN).
- Vous pouvez également utiliser GetDeviceCaps(screen_hdc, HORZRES) et GetDeviceCaps(screen_hdc, VERTRES) pour les résolutions horizontale et verticale, respectivement.
-
Résolution combinée de tous les moniteurs :
- Utilisez GetSystemMetrics(SM_CXVIRTUALSCREEN) et GetSystemMetrics(SM_CYVIRTUALSCREEN) pour la largeur et la hauteur totales.
-
Résolution de la zone de travail (hors barre des tâches) :
- Obtenez les dimensions de la zone de travail en appelant SystemParametersInfo(SPI_GETWORKAREA, sizeof(RECT), &rect_ptr , 0), puis extrayez les valeurs rect_ptr pour la largeur et la hauteur.
-
Résolution spécifique du moniteur :
- Employer GetMonitorInfo () avec le HMONITOR approprié pour obtenir à la fois la zone de travail et les dimensions plein écran.
Considérations supplémentaires :
- N'oubliez pas que les coordonnées du moniteur ne commencent pas toujours à 0,0. Utilisez MonitorFromWindow() pour rechercher le moniteur actif d'une fenêtre avant d'utiliser GetMonitorInfo().
- Pour modifier la résolution de l'écran ou récupérer les taux de rafraîchissement, exploitez les fonctions API de bas niveau telles que EnumDisplayDevices(), EnumDisplaySettings() et ChangeDisplaySettings().
- GetDeviceCaps() peut également fournir des informations sur la profondeur de couleur.
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!
Déclaration: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