Condividi tramite


CWnd::EnableToolTips

Attiva le descrizioni comandi per la finestra specificata.

BOOL EnableToolTips(
   BOOL bEnable = TRUE
);

Parametri

  • bEnable
    Specifica se il controllo di descrizione comandi è abilitato o disabilitato.TRUE abilita il controllo; FALSE disabilita il controllo.

Valore restituito

TRUE se le descrizioni comandi sono abilitate; in caso contrario FALSE.

Note

Override OnToolHitTest per fornire una struttura o strutture TOOLINFO per la finestra.

[!NOTA]

Alcune finestre, ad esempio CToolBar, forniscono un'implementazione incorporata OnToolHitTest.

Vedere TOOLINFO in Windows SDK per ulteriori informazioni su questa struttura.

È sufficiente chiamare EnableToolTips non è sufficiente per visualizzare le descrizioni comandi per i controlli figlio a meno che la finestra padre è derivata da CFrameWnd.Questo perché CFrameWnd fornisce un gestore predefinito per la notifica TTN_NEEDTEXT.Se la finestra padre non è derivata da CFrameWnd, ovvero, se è una finestra di dialogo o una visualizzazione form, descrizioni comandi per i controlli figlio non vengono visualizzati correttamente se non è disponibile un gestore per la notifica di descrizione comandi TTN_NEEDTEXT.Vedere descrizioni comandi.

Le descrizioni comandi predefinite fornite per le finestre EnableToolTips non dispongono di testo associate.Per recuperare il testo della descrizione comandi visualizzati, la notifica TTN_NEEDTEXT viene inviata alla finestra padre del controllo di descrizione comandi prima della descrizione comandi visualizzati.Se non esiste alcun gestore per questo messaggio assegnare il valore al membro pszText della struttura TOOLTIPTEXT, non verrà testo visualizzato per la descrizione comandi.

Esempio

// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
   CView::OnInitialUpdate();

   m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
      CRect(10, 10, 100, 100), this, IDC_TTEDIT);
   EnableToolTips(TRUE);   // enable tool tips for view
}

//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
   UNREFERENCED_PARAMETER(id);
   UNREFERENCED_PARAMETER(pResult);

   // need to handle both ANSI and UNICODE versions of the message
   TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
   TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
   CStringA strTipText;
   UINT_PTR nID = pNMHDR->idFrom;
   if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
      pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
   }

   if (nID != 0) // will be zero on a separator
      strTipText.Format("Control ID = %d", nID);

   if (pNMHDR->code == TTN_NEEDTEXTA)
   {
      strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText, 
         strTipText.GetLength() + 1);
   }
   else
   {
      ::MultiByteToWideChar(CP_ACP , 0, strTipText, strTipText.GetLength() + 1,
         pTTTW->szText, sizeof(pTTTW->szText)/(sizeof pTTTW->szText[0]));
   }

   return TRUE;    // message was handled
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico della gerarchia

CWnd::CancelToolTips

CWnd::OnToolHitTest

Classe di CToolBar

TOOLINFO