pb avec GetWindowRect en config double écran

pb avec GetWindowRect en config double écran - C++ - Programmation

Marsh Posté le 23-08-2006 à 15:09:54    

Bonjour à tous,
 
J'utilise GetWindowRect puis SetWindowPos pour redimensionner dynamiquement un control de texte dans une boite de dialogue.  
 
Tout se passe très bien en config simple écran où quand la boite de dialogue et la fenêtre de mon application sont affichées sur l'écran principal en config double écran. En gros, GetWindowRect me renvoit les coordonnées 22, 147, 113 et 322 pour top, bottom, left et right.
 
Mais quand la fenêtre de mon application est affichée sur le deuxième écran et que ma boite de dialogue est sur le premier, GetWindowRect me renvoit 22, 147, 1137 et 1346 !! Inutile de vous dire qu'avec les coordonnées suivantes, le SetWindowPos n'arrive pas à afficher le control de texte dans sa boite de dialogue.
 
Bref, la boite de dialogue étant toujours à la même place, je n'ai pas les même coordonnées selon la position de la fenêtre principale de l'application !  :??:  
 
Si quelqu'un a une idée pour résoudre ce problème...
 
merci


Message édité par zemumu le 23-08-2006 à 15:10:17
Reply

Marsh Posté le 23-08-2006 à 15:09:54   

Reply

Marsh Posté le 24-08-2006 à 09:55:08    

J'ai un vague souvenir d'avoir du utiliser monitorFromRect (ou une API de nom voisin) dans ce cas
 
une petite recherche MSDN donne : http://windowssdk.msdn.microsoft.c [...] 34817.aspx
 
bon courage :)
 

Reply

Marsh Posté le 24-08-2006 à 10:14:53    

GetWindowRect renvoie des screen coordinates. SetWindowPos prend des client coordinates.

Reply

Marsh Posté le 24-08-2006 à 13:33:09    

retrox a écrit :

GetWindowRect renvoie des screen coordinates. SetWindowPos prend des client coordinates.


 
Oui je viens de m'en apercevoir ce qui m'a permis de trouver une solution à mon problème. Viiblement, mon prédécesseur qui a codé cela, lui ne l'avait pas vu...
 
Par contre, je comprend toujours pas pourquoi GetWindowRect m'a donné des corrdonnées qui sont sur le deuxième écran alors que ma boite de dialog est sur le premier...  :pt1cable: mais bon...  

Reply

Marsh Posté le 24-08-2006 à 14:41:46    

Tu peux avoir le "2e" écran à gauche ou à droite (voire en dessous ou au dessus). C'est configurable normalement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed