Detection résolution de tous les ecrans
Bonjour,
Je suis actuellement en train de compléter les fonctions d'un active X (c++).
Dans cet active X, j'ai déjà réussi à récupérer le nombre d'écran avec :
Code:
1 2
|
GetSystemMetrics(SM_CMONITORS); |
Et maintenant, j'aimerai récupérer les résolutions des différents écrans.
En regardant, j'ai trouvé ça :
Code:
1 2 3 4 5
|
BOOL GetMonitorInfo(
__in HMONITOR hMonitor,
__out LPMONITORINFO lpmi
); |
Avec un exemple à cette adresse : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Sur cette partie, seul la partie sur la récupération des résolutions m’intéresse, soit :
Code:
1 2 3 4 5 6 7
|
GetMonitorInfo(hMonitor, &mi);
if (flags & MONITOR_WORKAREA)
rc = mi.rcWork;
else
rc = mi.rcMonitor; |
Et donc pour pouvoir me servir de la fonction, je dois avoir un HMONITOR. Seulement comment récupérer un HMONITOR à partir d'une position d'écran ?
Pour vous donner une idée du mode de fonctionnent que j'aimerai, en c# ça donnerait :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
int number_screen = Screen.AllScreens.Count();
System.Console.WriteLine("Number of screens : " + number_screen + ".\n");
Screen[] screens = Screen.AllScreens;
int i = 1;
foreach (Screen screen in screens)
{
int width_width = screen.Bounds.Width;
int width_height = screen.Bounds.Height;
System.Console.WriteLine("\tScreen " + i + " width : " + width_width + ".\n");
System.Console.WriteLine("\tScreen " + i + " height : " + width_height + ".\n");
System.Console.WriteLine("----------");
i++;
}
System.Console.ReadKey(); |
Je vous remercie de votre aide.