begin process at 2012 05 30 06:54:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Récupérer le titre d'une fenêtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer le titre d'une fenêtre

vendredi 10 juin 2005 à 17:38:13 | Récupérer le titre d'une fenêtre

Ajakaty

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!!! Confused 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....
Est-ce que quelqu'un a une idée???

Merci d'avance!!! Very Happy

vendredi 10 juin 2005 à 17:46:06 | Re : Récupérer le titre d'une fenêtre

BruNews

Administrateur CodeS-SourceS
HWND hWndUnder = WindowFromPoint(pos);
hWndUnder = GetLastActivePopup(hWndUnder);
....

ciao...
BruNews, MVP VC++
samedi 11 juin 2005 à 13:46:28 | Re : Récupérer le titre d'une fenêtre

Ajakaty

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....
samedi 11 juin 2005 à 14:04:51 | Re : Récupérer le titre d'une fenêtre

BruNews

Administrateur CodeS-SourceS
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++
samedi 11 juin 2005 à 14:12:29 | Re : Récupérer le titre d'une fenêtre

Ajakaty

D'accord, mais GetClassName retourne quoi? Je veux dire, on peut connaître le nom de classe de la barre de titre par exemple?
D'après ce que j'ai compris, un parent d'une fenêtre est une sorte de fenêtre qui contient la fenêtre courante. C'est bien quelque chose du genre?
samedi 11 juin 2005 à 14:20:06 | Re : Récupérer le titre d'une fenêtre

BruNews

Administrateur CodeS-SourceS
Si c'est un menu, GetParent() donne handle de la fenetre qui contient ce menu.

ciao...
BruNews, MVP VC++
samedi 11 juin 2005 à 15:34:04 | Re : Récupérer le titre d'une fenêtre

Ajakaty

Argh!!!! Je m'en sors pas!!! J'arrive pas à récupérer le handle de la fenêtre (le même fourni par GetForegroundWindow)....
dimanche 12 juin 2005 à 15:16:05 | Re : Récupérer le titre d'une fenêtre

Ajakaty

Réponse acceptée !
C'est bon j'ai trouvé comment faire, je met le code, si jamais ça intéresse quelqu'un :

  • hWndUnder = WindowFromPoint(pos);
  • HWND temp;
  • HWND desktop=GetDesktopWindow();

  • while(1)
  • {
  • temp = GetParent(hWndUnder)
  • if(temp!= 0 && temp!=desktop) hWndUnder = temp;
  • else break;
  • }
Voilà!




Cette discussion est classée dans : récupérer, titre, fenêtre, hwnd, trouve


Répondre à ce message

Sujets en rapport avec ce message

Obtenir le HWND d'un bouton. [ par aztcaLISS ] Salut,Je voudrais savoir comment je pourrais récupérer le HWND d'un bouton qui se trouve dans une fenêtre d'une application. Je peux appeler la foncti Je ne trouve pas de titre approprié [ par jipe32 ] Bonsoir,Excusez-moi pour le titre, mais bon.Je suis en train de coder un prog et je voudrais qu'il aille récuperer du texte avec des liens soit dans u 2 Questions : icone fenetre & Taille... [ par clabe ] Bonjour, Je voudrais savoir comment je pourrais tout d'abord changer l'icone dans la barre de titre de ma fenetre... Ensuite j'aurais aimé savoir comm Problème d'affichage d'une barre de titre [ par rachid12450 ] Voilà , j'ai une application qui affiche une fenêtre avec une barrre de titre j'ai remarqué que quand j'essai de redimensionner la fenêtre de cette ap Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue Faire passer la fenêtre principale au 1er plan [ par jipp ] Bonjour à tous,Cela fait plusieurs jours que je galère pour faire passer ma fenêtre principale au premier plan (par dessus une boite de dialogue non m Récupérer le HWND du prog lancé avec ShellExecute ? [ par supergrey ] Bonjour je voudrais savoir si on peut récupérer le handle de la fenetre principale(hwnd) d'un logiciel lancé avec ShellExecute.Merci Récupérer la class de la fenêtre. [ par deck_bsd ] Yop,Voila je voudrai savoir comment récupérer le nom de la class d'une fenêtre par sont handle si possible. Il me semble que une fonction GetClassName Recuperer titre de la fenetre en premier plan [ par XKaliBur ] Voila en résumer ce que je veut fair : récupérer la liste des titre des fenetre qui passent en premier plan, pour ça je récupère le handle de la fenet Récupérer le contrôle d’une fenêtre par une nouvelle classe [ par Superweight ] Bonjour, Je développe en c++ sous visual studio 6.0, je suis débutant dans le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales