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

MFC Discussion :

Tooltip qui disparait rapidement ou qui ne s'affiche pas


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut Tooltip qui disparait rapidement ou qui ne s'affiche pas
    Bonjour,
    je vous expose mon souci :

    je veux afficher un tooltip poour chaque ligne d'un CListCtrl. Mon problème : le tooltip s'affiche les 2 à 3 première fois et très brievement, puis plus rien.
    Je dois loupé un truc !


    voici mon code (partiel) : j'ai repris un code que j'ai trouvé sur le net. Testé en dehors de mon projet, il fonctionne bien. Maintenant la CToolTipCtrl est intégré dans une CDialogBox redéfinie dont je n'ai pas le code (çà c'est une obligation de mon pj). Je ne sais pas si çà peut venir de çà.

    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
    43
    ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
    ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
     
    int CToolTipListCtrl::OnToolHitTest(CPoint point, TOOLINFO * pTI) const {
    ... (jamais appelée donc je ne précise pas le code)
    }
     
    BOOL CToolTipListCtrl::OnToolTipText( UINT id, NMHDR * pNMHDR, LRESULT * pResult ){
    	TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
       *pResult = 0;
    	CString strTipText;
     
    	//Get the mouse position
    	const MSG* pMessage;
        pMessage = GetCurrentMessage();
    	ASSERT ( pMessage );
        CPoint pt;
        pt = pMessage->pt; //Get the point from the message
    	ScreenToClient( &pt ); //Convert the point's coords to be relative to this control
     
    	LVHITTESTINFO lvhitTestInfo;
     
    	lvhitTestInfo.pt	= pt;
     
    	int nItem = SubItemHitTest(&lvhitTestInfo);
    	int nSubItem = lvhitTestInfo.iSubItem;
     
    	UINT nFlags =   lvhitTestInfo.flags;
     
       if( nFlags & m_wHitMask ){
    	  CString strKey;
     
    	  strKey.Format(_T("%d"),  nItem * 100 + nSubItem);
     
          if( m_ToolTipMap.Lookup(strKey, strTipText ) ){
              _mbstowcsz(pTTTW->szText, strTipText, 80);
             return FALSE;			
          }
       }
     
       return FALSE; //We didn't handle the message,
                     //let the framework continue propagating the message
    }
    Je pense que le fais que ma fonction OnToolHitTest ne soit pas appelée peut être une piste pour touver mon problème !

    Qu'en pensez vous ?

    Merci d'avance pour vos conseils et avis

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    Personne n'a une petite idée !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    Je vais essayer d'apporter plus d'information.

    J'ai un souci similaire sur le drawitem de ma CListCtrl : jamais je ne rentre dedans ! Donc c'est peut être le fait que je sois dans une dll ou en multithread qui fait que je ne reçois pas des événements.

    Je pense que je dois faire un hook sur le WH_MOUSE pour me relayer les évènement que j'ai besoin.
    Mais je n'y connais par grand chose et je galère un peu.

    Si qq'un pouvais me dire si je pars sur la bonne piste, merci.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    Bon pour cloturer la discussion, je poste la solution (ou du moins celle que j'ai mis en place)

    çà donnais quelque chose comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	if ( (nCode >= 0) && (lpMsg->message == WM_MOUSEMOVE) )
    	{
    		AfxGetApp()->PreTranslateMessage((LPMSG) lParam);
    	}

    Le message de déplacement est ainsi bien relayé vers mon composant ListCtrl et correctement traité.


    Je poste au cas ou qq'un aurait le même souci.

  5. #5
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Citation Envoyé par hummm Voir le message
    Je poste au cas ou qq'un aurait le même souci.
    Cette attention altruiste t'honore

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    C'est le but de l'entraide sur un forum

    Je suis bien content lorsque je pose une question et que l'on m'aide donc je pense devoir apporter moi aussi le maximum d'info...
    ...surtout quand c'est moi qui pose le problème et que j'ai la solution au final

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

Discussions similaires

  1. Sous menu qui disparait trop rapidement (onmouseouver)
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2010, 13h57
  2. Texte qui disparait sous internet explorer.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/08/2005, 02h55
  3. Tooltip qui disparait et mis en forme
    Par xtest dans le forum MFC
    Réponses: 17
    Dernier message: 17/04/2005, 22h52
  4. [WebForms][Javascript] Une DropDownList qui disparait....
    Par prem's dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 02/03/2005, 10h50
  5. LABEL QUI DISPARAIT SUR UN PICTUREBOX !
    Par Sophie42 dans le forum MFC
    Réponses: 2
    Dernier message: 13/01/2004, 12h10

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