[MFC] utilisation de DelTool
salut, pour un programme que je realise, je souhaite faire apparaitre une info bulle lorsque j'enfonce le click droit et ensuite, la faire disparaitre si je relache le click droit.
J'ai bien reussi a faire apparaitre l'info bulle, mais lorsque je relache le bouton droit, elle ne disparait pas, alors que j'utilise la fonction DelTool.
est ce que quelqu'un pourrait m'aider a resoudre mon probleme.
je vous donne mon code pour l'affichage de l'info bulle pour voir si vous trouver un probleme.
dans mon view.h
Code:
1 2 3
|
CToolTipCtrl* tool ; //On definie une variable pour l'info bulle
TOOLINFO ti; //ti recevra les caracteristiques du message de l'info bulle |
dans le constructeur de la classe View:
Code:
1 2 3
|
text=new char[256]; //la taille max. du message qui sera affiché dans ta tooltip
tool=new CToolTipCtrl(); |
dans OnInitialUpdate():
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
tool->Create(this,TTS_ALWAYSTIP|TTF_TRACK|TTF_ABSOLUTE|TTF_IDISHWND );
//taille de la structure en bytes
ti.cbSize = sizeof(TOOLINFO);
//Commande l'affichage de la tooltip
ti.uFlags = TTF_IDISHWND | TTF_TRACK | TTF_ABSOLUTE;
//Correspond a l'handle de la fenetre
ti.hwnd = this->m_hWnd;
ti.uId = (UINT)AfxGetMainWnd()->m_hWnd;
ti.hinst = AfxGetInstanceHandle();
ti.lpszText = LPSTR_TEXTCALLBACK;
ti.rect.left = ti.rect.top = ti.rect.bottom = ti.rect.right = 0; |
dans la fonction OnRButtonDown:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
//fonctions pour specifier les message windows
tool->SendMessage(TTM_ADDTOOL,0,(LPARAM)&ti);
tool->SendMessage(TTM_TRACKACTIVATE,(WPARAM)true,(LPARAM)&ti);
tool->SendMessage(TTM_SETMAXTIPWIDTH,0,(LPARAM)SHRT_MAX);
tool->EnableTrackingToolTips(true);
tool->EnableToolTips(true);
//On active l'info bulle
tool->Activate(true);
//On affiche la'info bulle avec son texte
sprintf(text,"ng=%d",ng);
CPoint p=point;
ClientToScreen(&p);
tool->SendMessage(TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(p.x+20,p.y+20));
//le +20 c'est à décaler l'affichage à côté du curseur et pas pile dessous |
dans la fonction OnRButtonUp:
Code:
1 2
|
tool->DelTool(this,0); |
je ne vois pas l'erreur qui fait que mon info bulle ne disparraisent pas.
Est ce que quelqu'un saurait?