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