J'écris un programme Windows qui permet à l'utilisateur de changer la résolution entre 1920 * 1080 et 3840 * 2160, c'est-à-dire entre FHD et 4K.Comment obtenir l'échelle de l'écran dans Windows?
J'ai essayé d'utiliser "GetSystemMetrics" pour obtenir la résolution actuelle.
//Algorithm #1
//Get current resolution and resolution scaling.
xScreenResolution = GetSystemMetrics(SM_CXSCREEN);
yScreenResolution = GetSystemMetrics(SM_CYSCREEN);
cout << "Current Resolution is: " << xScreenResolution << "x" << yScreenResolution << endl;
Par exemple, si j'utilise une résolution de 3840 * 2160, je me attendais le programme me donnera la résolution de 3840 * 2160. Cependant, le programme affiche seulement 1536x864, ce qui correspond à la résolution après que Windows ait effectué un rééchelonnement.
Je veux savoir comment obtenir le facteur d'échelle (100%, 200%, 250%, etc.) par programmation comme les paramètres d'affichage dans Windows 10. display settings in Windows 10
Merci de me répondre, mais je ne suis pas sûr de savoir comment utiliser GetDpiForMonitor, comme je ne sais pas comment déclarer et initialiser Hmonitor et MONITOR_DPI_TYPE correctement –
@LuftSchlafer: Voir [EnumDisplayMonitors] (https://msdn.microsoft .com/fr-fr/library/dd162610.aspx). – IInspectable