CWnd::EnableToolTips
Aktiviert QuickInfo für das angegebene Fenster.
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
Parameter
- bEnable
Gibt an, ob das ToolTip-Steuerelement aktiviert oder deaktiviert wird.TRUE kann das Steuerelement; FALSE deaktiviert das Steuerelement.
Rückgabewert
TRUE, ob QuickInfos aktiviert werden; andernfalls FALSE.
Hinweise
Überschreiben OnToolHitTest, um die TOOLINFO-Struktur oder Strukturen für das Fenster bereitzustellen.
Hinweis |
---|
Einige Fenster, wie CToolBar, bieten eine integrierte Implementierung von OnToolHitTest. |
Siehe TOOLINFO in Windows SDK weitere Informationen zu diesen Struktur.
EnableToolTips einfach aufzurufen ist nicht genug zum von QuickInfos für die untergeordneten Steuerelemente anzuzeigen, sofern das übergeordnete Fenster von CFrameWnd abgeleitet wird.Dies ist, da CFrameWnd einen Standardhandler für die TTN_NEEDTEXT Benachrichtigungen bereitstellt.Wenn das übergeordnete Fenster nicht von abgeleitet ist CFrameWnd h. wenn ein Dialogfeld oder eine Formularansicht ist, zeigen QuickInfos für die untergeordneten Steuerelemente nicht korrekt angezeigt, es sei denn, Sie einen Handler für die TTN_NEEDTEXT QuickInfobenachrichtigung bereitstellen.Siehe QuickInfo.
Die standardmäßige QuickInfos, die für die Fenster von EnableToolTips bereitgestellt werden, verfügen nicht über den Text, der mit ihnen zugeordnet ist.Um Text abzurufen gesendet wird damit die QuickInfo, die TTN_NEEDTEXT Benachrichtigung zum übergeordneten Fenster des ToolTip-Steuerelements anzeigt kurz vor dem QuickInfo-Fenster angezeigt wird.Wenn kein Handler gibt, damit diese Meldung dem pszText-Member der Struktur TOOLTIPTEXT einige Wert zugewiesen wird, gibt es keinen Text, der für die QuickInfo angezeigt wird.
Beispiel
// 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
}
Anforderungen
Header: afxwin.h