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 :

pb tooltip combobox


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut pb tooltip combobox
    Bonjour,
    j'aimerais afficher des bulle d'aides sur tous les éléments d'une combobox.
    J'ai donc voulu utiliser la méthode GetComboBoxInfo pour récupérer un handle sur la listBox et ainsi, avec les méthode ItemFromPoint récupérer l'item le plus proche d'un point donné :

    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
    int ComboBox::OnToolHitTest(CPoint point, TOOLINFO * pTI) const
    {
    	int row;
    	RECT cellrect;
    	BOOL tmp = FALSE;
    	COMBOBOXINFO info;
    	GetComboBoxInfo(&info);
    	listbox->SubclassWindow(info.hwndList);
    	row  = listbox->ItemFromPoint(point,tmp);
    	if ( row == -1 )
    		return -1;
    	listbox->GetItemRect(row,&cellrect);
    	pTI->rect = cellrect;
    	pTI->hwnd = m_hWnd;
    	pTI->uId = (UINT)((row));
    	pTI->lpszText = LPSTR_TEXTCALLBACK;
    	return pTI->uId;
    }
    mais mon handle de ListBox est vide et le programme plante dans la fonction
    CWnd::Attach(HWND hWndNew) a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ASSERT(m_hWnd == NULL);     // only attach once, detach on destroy
    je ne sais pas trop comment résoudre mon problème, à dire vrai je ne sais même pas si ma méthode est correct ...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut
    ok, en fait j'ai résolu mon problème :

    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
    int ComboBox::OnToolHitTest(CPoint point, TOOLINFO * pTI) const
    {
    	int row;
    	RECT cellrect;
    	BOOL tmp = FALSE;
    	PCOMBOBOXINFO info = new COMBOBOXINFO;
    	info->cbSize = sizeof(COMBOBOXINFO);
    	if (GetComboBoxInfo(info) == TRUE)
    	{
    		if (GetDroppedState())
    		{
    			listbox->Attach(info->hwndList);
    			row  = listbox->ItemFromPoint(point,tmp);
    			if ( row == -1 )
    				return -1;
    			listbox->GetItemRect(row,&cellrect);
    			TRACE("row : %d\n", row);
    			pTI->rect = cellrect;
    			pTI->hwnd = m_hWnd;
    			pTI->uId = (UINT)((row));
    			pTI->lpszText = LPSTR_TEXTCALLBACK;
    			listbox->Detach();
    			delete info;
    			return pTI->uId;
    		}
    	}
    	int i = GetLastError();
    	delete info;
    	return 0;
    }
    seulement je ne sais pas quel est l'évènement à détecter pour que ma tooltip apparaisse lorsque ma souris est sur un des éléments de la list de la toolbox ... jusqu'ici je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BEGIN_MESSAGE_MAP(ComboBox, CComboBox)
    	ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
    	ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
    END_MESSAGE_MAP()
    mais l'évènement ne correspond pas a ce que j'attends ...

    si quelqu'un a une suggestion

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [PowerShell] Tooltip - combobox - Powershell Form
    Par smooky132 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 09/12/2014, 08h17
  3. COMBOBOX DROPDOWNLIST TOOLTIP pour chaque élément
    Par informatiquedm dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/03/2013, 09h55
  4. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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