Gestione della notifica TTN_NEEDTEXT per le descrizioni comandi
Nell'ambito dell'abilitazione dei suggerimenti per gli strumenti, è possibile gestire il messaggio TTN_Nedizione Enterprise DTEXT aggiungendo la voce seguente alla mappa dei messaggi della finestra del proprietario:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
memberFxn
Funzione membro da chiamare quando è necessario il testo per questo pulsante.
Si noti che l'ID di una descrizione comando è sempre 0.
Dichiarare la funzione del gestore nella definizione della classe come indicato di seguito:
afx_msg BOOL OnTtnNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
dove i parametri in corsivo sono:
id
Identificatore del controllo che ha inviato la notifica. Non utilizzato. L'ID del controllo viene ricavato dalla struttura NMHDR .
pNMHDR
Puntatore alla struttura NMTTDISPINFO . Questa struttura è illustrata anche in La struttura TOOLTIPTEXT.
pResult
Puntatore al codice del risultato che è possibile impostare prima di tornare. TTN_Nedizione Enterprise I gestoriDTEXT possono ignorare il parametro pResult.
Come esempio di gestore delle notifiche di visualizzazione modulo:
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;
}
Chiamare EnableToolTips
(questo frammento tratto da OnInitDialog
):
EnableToolTips(TRUE);