Ajakaty
Messages postés13Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention31 janvier 2006
-
10 juin 2005 à 17:38
Ajakaty
Messages postés13Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention31 janvier 2006
-
12 juin 2005 à 15:16
Bonjour!!
Je vous écris car je me trouve devant un problème que je n'arrive pas à résoudre...
En fait je veux récupérer le titre d'une fenêtre quand je passe ma souris dessus.
Il y a la méthode qui consiste à faire :
HWND hwnd = GetForegroundWindow();
char * caption = new char[255];
int length = GetWindowText(hwnd,caption,254);
et qui marche très bien.
Seulement, avec mon programme je ne veux pas récupérer le titre de la
fenêtre au premier plan mais n'importe quelle fenêtre sur laquelle je
me trouve avec ma souris!
Alors je fais :
GetCursorPos(&pos);
HWND hWndUnder = WindowFromPoint(pos);
LPTSTR p = sText.GetBuffer(MAX_PATH);
GetWindowText(hWndUnder, p, MAX_PATH);
seulement voilà, ça ne retourne pas toujours le titre!!!
Ca donne le titre si je passe sur la barre bleue suppérieure mais si
par exemple on passe sur une fenêtre avec une barre d'outils, ça donne
le nom de la barre d'outil...
Et moi je veux récupérer le titre quelque soit l'endroit où je me trouve sur la fenêtre!
Je pense que WindowFromPoint ne me renvoie pas le bon handle mais j'arrive pas à m'en sortir....
Ajakaty
Messages postés13Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention31 janvier 2006 11 juin 2005 à 13:46
Salut!
Je viens de tester ton truc, ça ne marche pas... :'(
En fait, j'ai remarqué que la méthode GetForegroundWindow retournait un
hwnd correspondant directement à celui de la barre bleue supérieure. Il
faudrait que j'arrive au même résultat... J'ai essayé avec un GetAncestor mais ça ne marche pas....
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 11 juin 2005 à 14:04
exact, j'y ai repensé trop tard après avoir posté...
Faudrait tester si ton handle correspond à une barre d'outils ou un menu (GetClassName par exemple) et en ce cas faire:
hWndUnder = GetParent(hWndUnder);
A explorer
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?