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 ...