次の方法で共有


ツール ヒントの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);

こちらも参照ください

CFrameWnd から派生していない Windows のツール ヒント