Freigeben über


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.

HinweisHinweis

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

Siehe auch

Referenz

CWnd-Klasse

Hierarchien-Diagramm

CWnd::CancelToolTips

CWnd::OnToolHitTest

CToolBar-Klasse

TOOLINFO