处理工具提示的 TTN_NEEDTEXT 通知

启用工具提示一部分,通过添加下面输入处理 TTN_NEEDTEXT 消息至所有者窗口的消息映射:

ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
  • memberFxn
    要调用的,当文本用于此按钮所需的成员函数。

请注意工具提示的 ID 始终为 0。

声明类中定义的函数处理程序如下所示:

afx_msg BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult);

在斜体的参数:

  • id
    发送通知控件的标识符。 未使用。 控件 ID 从 NMHDR 结构的操作。

  • pNMHDR
    NMTTDISPINFO 结构的指针。 此结构中还进一步讨论。TOOLTIPTEXT 结构

  • pResult
    结果指针可以设置的代码,在返回之前。 TTN_NEEDTEXT 处理程序可以忽略 pResult 参数。

作为窗体视图通知处理程序:

BOOL CMyDialog::OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
   UNREFERENCED_PARAMETER(id);

   NMTTDISPINFO *pTTT = (NMTTDISPINFO *) pNMHDR;
   UINT_PTR nID = pNMHDR->idFrom;
   BOOL bRet = FALSE;

   if (pTTT->uFlags & TTF_IDISHWND)
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
      if(nID)
      {
         _stprintf_s(pTTT->szText, sizeof(pTTT->szText) / sizeof(TCHAR), 
            _T("Control ID = %d"), nID);
         pTTT->hinst = AfxGetResourceHandle();
         bRet = TRUE;
      }
   }

   *pResult = 0;

   return bRet;
}

调用 EnableToolTips (从 OnInitDialog采取的此段):

EnableToolTips(TRUE);

请参见

概念

Windows 中不是从 CFrameWnd 派生的工具提示