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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.