CWnd::EnableToolTips

启用特定窗口的工具提示。

BOOL EnableToolTips(
   BOOL bEnable = TRUE
);

参数

  • bEnable
    指定工具提示控件是否启用或禁用。TRUE 启用控件; FALSE 禁用控件。

返回值

TRUE,如果工具提示启用;否则 FALSE

备注

重写提供 TOOLINFO 结构或结构的 OnToolHitTest 为窗口。

说明说明

某些窗口,例如 CToolBar,提供 OnToolHitTest的内置实现。

在参见 Windows SDK 的 TOOLINFO 有关此结构的更多信息。

除非父窗口从 CFrameWnd,派生调用 EnableToolTips 不是显示赋给控件的工具提示的足够。这是因为,CFrameWndTTN_NEEDTEXT 通知提供一个默认处理程序。也就是说,如果您的父窗口从 CFrameWnd未派生,如果它是对话框或窗体视图,赋给控件的工具提示将不会正确显示,除非您为 TTN_NEEDTEXT 工具提示通知提供处理程序。工具提示参见。

为您的windows提供的默认工具提示。EnableToolTips 没有文本与它们。在工具提示窗口中显示之前,若要检索工具提示的文本可以显示,TTN_NEEDTEXT 通知发送到工具提示控件的父窗口。如果没有此消息的处理程序可以进行某些值。TOOLTIPTEXT 结构的 pszText 成员,则没有为工具提示显示的文本。

示例

// 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
}

要求

Header: afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd::CancelToolTips

CWnd::OnToolHitTest

CToolBar选件类

TOOLINFO