IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

probleme de toolbars


Sujet :

Windows

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut probleme de toolbars
    j'ai creer cette fonction :
    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
    20
    21
    22
    23
    24
    int SearchInToolbar(HWND HwndToolbar, char *ButtonText)
    {
    	int i = 0, ButtonNum = -1;
    	char *WinText = NULL;
    	TBBUTTON tbb;
    
    	ButtonNum = SendMessage(HwndToolbar, TB_BUTTONCOUNT, (WPARAM)0, (LPARAM)0);
    
    	for(i = 0; i < ButtonNum; i++)
    	{
    		SendMessage(HwndToolbar, TB_GETBUTTON, (WPARAM)i, (LPARAM)&tbb);
    		if(SendMessage(HwndToolbar, TB_GETBUTTONTEXT, (WPARAM)&tbb.idCommand, (LPARAM)WinText) == -1)
    		{
    		        MessageBox(NULL, "probleme", "toolbar",0);
    		}
    		if(strcmp(WinText, ButtonText) == 0)
    		{
    			MessageBox(NULL, "reussi", "toolbar",0);
    			ButtonNum = i;
    		}
    	}
    
    	return ButtonNum;
    }
    elle permet de trouver les textes des boutons d'une toolbar, mais le probleme c'est qu'elle ne les trouvent pas....

    mon programme trouve la toolbar, me dit ensuite que j'ai 14 boutons dans la toolbar avec le message TB_BUTTONCOUNT, apres il me donne un tbb.idCommand negtif ce qui me parait assez bizarre... et pour finir il me dit qu'il ne trouve aucun texte dans les boutons de la toolbar alors qu'ils ont tous un texte...

    est-ce que quelqu'un aurait une idée d'ou ca peut venir, merci d'avance pour vos reponses

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Forum développement Windows
    Pourquoi commences-tu à 10 et pas à 0 dans ta boucle ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    car WinText restait NULL apres le premier i testé donc arrivé a la ligne strcmp le programme fermait automatiquement, donc j'ai essayé tout les i de 0 a 13 manuellement et c'est pour ca que je commencais au fait qu'a 10 ici, j'avais oublié de le remettre a 0, mais le probleme ne vient pas de la.

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    As-tu lu la doc ?
    Le minimum est de donner une taille correcte à la chaîne
    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
    20
    21
    22
    23
    24
    25
    26
    int SearchInToolbar(HWND HwndToolbar, char *ButtonText)
    {
    	int i = 0, ButtonNum = -1;
    	TCHAR WinText[256];
    	TBBUTTON tbb;
    
    	ButtonNum = SendMessage(HwndToolbar, TB_BUTTONCOUNT, (WPARAM)0, (LPARAM)0);
    
    	for(i = 0; i < ButtonNum; i++)
    	{
    		SendMessage(HwndToolbar, TB_GETBUTTON, (WPARAM)i, (LPARAM)&tbb);
    		if(SendMessage(HwndToolbar, TB_GETBUTTONTEXT, (WPARAM)&tbb.idCommand, (LPARAM)WinText) == -1)
    		{
    		        MessageBox(NULL, "probleme", "toolbar",0);
    		}
                    else
                    // obligatoire sinon ça n'a aucune signification si le retour est -1
    		if(strcmp(WinText, ButtonText) == 0)
    		{
    			MessageBox(NULL, "reussi", "toolbar",0);
    			ButtonNum = i;
    		}
    	}
    
    	return ButtonNum;
    }
    C'est le minimum ! Il faudrait tester le retour de SendMessage avec NULL passé en paramètre pour connaître la longueur du texte, avec 256 tu as de la marge mais on ne sait jamais.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    j'ai essayé, mais ca m'affiche probleme au lieu de reussi.

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Normal, je n'avait pas fait attention c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(SendMessage(HwndToolbar, TB_GETBUTTONTEXT, (WPARAM)tbb.idCommand, (LPARAM)WinText) == -1)
    il faut enlever le & qui prend l'adresse au lieu de la valeur.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    il m'affiche probleme aussi, mais je sais d'ou ca vient maintenant : tbb.idCommand, il me donne deja une valeur negative, mais en plus de ca c'est la meme valeur pour tous les boutons.

    au fait j'essaye de recuperer les textes de la toolbar d'emule, celle ou il y a les boutons serveurs, transferts, partages, kad, etc...

    je ne sais pas comment regler ce probleme de texte...

Discussions similaires

  1. Toolbar Focus Problem
    Par gridin dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 21/01/2011, 17h11
  2. Probleme de ToolBar en java swing
    Par Drogba11 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/12/2008, 17h11
  3. probleme d'affichage de toolbar et menu
    Par greg08 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 04/11/2008, 01h13
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo