Notification de la gestion TTN_NEEDTEXT pour les info-bulles
Dans le cadre de activer les info-bulles, vous traitez le message de TTN_NEEDTEXT lorsque vous ajoutez 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);
où les paramètres en italique sont :
id
Identificateur du contrôle qui envoie la notification. Non utilisé. L'ID de contrôle provient de la structure de NMHDR.pNMHDR
Le pointeur vers la structure NMTTDISPINFO . Cette structure est également décrite plus loin dans La structure de TOOLTIPTEXT.pResult
Un pointeur vers qui résulte le code que vous pouvez définir avant de le retourner. Les gestionnaires deTTN_NEEDTEXT peuvent ignorer le paramètre de pResult.
Comme exemple d'une gestion de notification en forme de visionnage :
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;
}
Appelle EnableToolTips (ce fragment est pris en OnInitDialog) :
EnableToolTips(TRUE);