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
dans le constructeur de la classe View:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 OnInitialUpdate():
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 text=new char[256]; //la taille max. du message qui sera affiché dans ta tooltip tool=new CToolTipCtrl();
dans la fonction OnRButtonDown:
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 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 OnRButtonUp:
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 //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
je ne vois pas l'erreur qui fait que mon info bulle ne disparraisent pas.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 tool->DelTool(this,0);
Est ce que quelqu'un saurait?
Partager