Notification de la gestion TTN_NEEDTEXT pour les info-bulles
Dans le cadre de activer des info-bulles, vous traitez le message de TTN_NEEDTEXT en ajoutant l'entrée suivante à la table des messages de la fenêtre propriétaire :
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
- memberFxn
La fonction membre à appeler lorsque le texte est nécessaire pour ce bouton.
Notez que l'ID d'une info-bulle est toujours 0.
Déclarez votre fonction gestionnaire dans la définition de classe comme suit :
afx_msg BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
lorsque les paramètres en italique sont :
id
Identificateur du contrôle qui a envoyé la notification.Non utilisé.L'identificateur du contrôle est issu de la structure de NMHDR .pNMHDR
Un pointeur vers la structure de NMTTDISPINFO .Cette structure est également décrite ultérieurement dans La structure de TOOLTIPTEXT.pResult
Un pointeur vers le résultant code que vous pouvez définir avant le retourniez.Les gestionnaires deTTN_NEEDTEXT peuvent ignorer le paramètre d' pResult .
Prenons un exemple d'un gestionnaire de notification en mode formulaire :
BOOL CMyDialog::OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
UNREFERENCED_PARAMETER(id);
NMTTDISPINFO *pTTT = (NMTTDISPINFO *) pNMHDR;
UINT_PTR nID = pNMHDR->idFrom;
BOOL bRet = FALSE;
if (pTTT->uFlags & TTF_IDISHWND)
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if(nID)
{
_stprintf_s(pTTT->szText, sizeof(pTTT->szText) / sizeof(TCHAR),
_T("Control ID = %d"), nID);
pTTT->hinst = AfxGetResourceHandle();
bRet = TRUE;
}
}
*pResult = 0;
return bRet;
}
Appel EnableToolTips (ce fragment pris d' OnInitDialog) :
EnableToolTips(TRUE);