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);

Vedi anche

Descrizioni comandi in Windows non derivate da CFrameWnd