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 :

Problème avec ToolTips


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut Problème avec ToolTips
    Bonjour,
    Je voufrais associer un ToolTip aux boutons d' une TOOLBAR ...
    J'ai bien regardé l'explication donné par MSDN, je ne vois pas comment isoler un des boutons dans la TOOLBAR
    Dans le cas de la procedure decrite dans MSDN, mon message se declanche n'importe où sur la Tollbar
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void CreateTooltip (HWND hwnd, char *lptstr)
    {
    
    INITCOMMONCONTROLSEX iccex; 
    HWND hwndTT;               
    TOOLINFO ti;
    unsigned int uid = 0;
    char tmp[5];       
    static RECT rect;
                
    
        iccex.dwICC = ICC_WIN95_CLASSES;
        iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
        InitCommonControlsEx(&iccex);
    
        hwndTT = CreateWindowEx(WS_EX_TOPMOST,
            TOOLTIPS_CLASS,
            NULL,
            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,		
            CW_USEDEFAULT, CW_USEDEFAULT,
            CW_USEDEFAULT, CW_USEDEFAULT,
            hwnd, NULL, hInst, NULL);
    
        SetWindowPos(hwndTT, HWND_TOPMOST, 0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    
        GetClientRect (hwnd, &rect);
    
        ti.cbSize = sizeof(TOOLINFO);
        ti.uFlags = TTF_SUBCLASS;
        ti.hwnd = hwnd;
        ti.hinst = hInst;
        ti.uId = uid;
        ti.lpszText = lptstr;
    //
        ti.rect.left = rect.left;    
        ti.rect.top = rect.top;
        ti.rect.right = rect.right;
        ti.rect.bottom = rect.bottom;
    
        SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO) &ti);	
    
    }
    Si quelqu'un a déjà fait ...
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    J'ai même tenté de mettre "LPSTR_TEXTCALLBACK" dans le champs lpszText de la structure TOOLINFO
    Mais je ne recois pas non plus le message de notification "TTN_GETDISPINFO"

  3. #3
    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
    Par défaut
    Regarde ici, j'ai eu un peu les mêmes problèmes

    En particulier, ceci peut t'aider :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    // Obtention du handle de la fenêtre du Tooltip associé à la Toolbar
    HWND tool_Hwnd = (HWND)::SendMessage(m_hWnd, TB_GETTOOLTIPS, 0, 0);
    
    if (tool_Hwnd != NULL)
    {		
    	TOOLINFO ti;
    
    	// Pour utiliser la structure TOOLINFO, il faut indiquer la taille de la structure,
    	ZeroMemory(&ti, sizeof(ti));
    	ti.cbSize= sizeof(ti);
    
    	// l'ID du bouton associé
    	ti.uId = (UINT_PTR)ID_BUTTON1;
    
    	// et le handle de la fenêtre mère
    	ti.hwnd = m_hWnd;
    	if (::SendMessage(tool_Hwnd, TTM_GETTOOLINFO ,   0,  (LPARAM) (LPTOOLINFO) &ti) == TRUE)
    	{
    		// il suffit juste d'indiquer ici l'information impérissable que vous voulez transmettre.
    		ti.lpszText = _T("Toto Lariflette");
    		::SendMessage(tool_Hwnd, TTM_SETTOOLINFO ,   0,  (LPARAM) (LPTOOLINFO) &ti);
    	}
    
            // autre méthode possible
    	ti.uId = (UINT_PTR)ID_BUTTON2;
    	if (::SendMessage(tool_Hwnd, TTM_GETTOOLINFO ,   0,  (LPARAM) (LPTOOLINFO) &ti) == TRUE)
    	{
    		// On indique ici l'ID du message dans les ressources
    		ti.lpszText = (LPSTR) IDS_STRING1;
                    // et le handle des ressources.
                    ti.hinst = _Module.GetResourceInstance();
    		::SendMessage(tool_Hwnd, TTM_SETTOOLINFO ,   0,  (LPARAM) (LPTOOLINFO) &ti);
    	}
    
    }
    "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

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Oui ça peut effectivement m'aider,
    Mais comment geres tu la strcture RECT de TOOLINFO qui determine les coordonées où le tooltip doit apparaitre ?

  5. #5
    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
    Par défaut
    Je ne la gère pas, c'est fait automatiquement par la toolbar, moi je n'ai pas créé le tooltip, c'est la toolbar qui l'a créé.
    "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

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par Trap D
    Je ne la gère pas, c'est fait automatiquement par la toolbar, moi je n'ai pas créé le tooltip, c'est la toolbar qui l'a créé.
    Bon alors, j'ai un petit problème ...
    Je n'ai pas de reponse au message TTM_GETTOOLINFO !
    Dans la creation de la ToolBar j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        LoadString (hInst, IDS_OUVRIR,  ToolTipsTable[0], sizeof(ToolTipsTable[0]));
        LoadString (hInst, IDS_NEW,     ToolTipsTable[1], sizeof(ToolTipsTable[1]));
        LoadString (hInst, IDS_COUR,    ToolTipsTable[2], sizeof(ToolTipsTable[2]));
        LoadString (hInst, IDS_ATT,     ToolTipsTable[3], sizeof(ToolTipsTable[3]));
        LoadString (hInst, IDS_HIS,     ToolTipsTable[4], sizeof(ToolTipsTable[4]));
        LoadString (hInst, IDS_PREL,    ToolTipsTable[5], sizeof(ToolTipsTable[5]));
        LoadString (hInst, IDS_CHERCHE, ToolTipsTable[6], sizeof(ToolTipsTable[6]));
        LoadString (hInst, IDS_SIMUL,   ToolTipsTable[7], sizeof(ToolTipsTable[7]));
        LoadString (hInst, IDS_PRINT,   ToolTipsTable[8], sizeof(ToolTipsTable[8]));
    
    	SendMessage (hToolbar, TB_SETTOOLTIPS, (WPARAM)(9), (LPARAM)ToolTipsTable);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Barre d'Outils
                hToolbar = CreateToolBar(hwnd);
    //ToolTips
                hTooltip=SendMessage(hToolbar, TB_GETTOOLTIPS, 0, 0);
    	    if (hTooltip != NULL) {
                  MessageBox(hwnd, "ToolTip existe ...", szAppName, MB_OK|MB_ICONINFORMATION);
    			  memset (&ti, 0, sizeof(ti));
                  ti.cbSize= sizeof(ti);
                  ti.uId = 0;
                  ti.hwnd = hToolbar;
                  if (SendMessage(hTooltip, TTM_GETTOOLINFO, 0, (LPARAM)(LPTOOLINFO)&ti) == TRUE)
                    MessageBox(hwnd, "Structure trouvée ...", szAppName, MB_OK|MB_ICONINFORMATION);
    	   }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec ToolTip
    Par sky88 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 31/12/2009, 01h55
  2. [ToolTip] Problème avec le caractère "\n"
    Par thomas_strass dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 30/09/2004, 09h19
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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