次の方法で共有


ツール ヒント用 TTN_NEEDTEXT 通知の処理

更新 : 2010 年 7 月

ツール ヒントを有効にする手順の一部として、オーナー ウィンドウのメッセージ マップに次のエントリを追加すると、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 から派生していないウィンドウのツール ヒント

履歴の変更

日付

History

理由

2010 年 7 月

コード例を更新。

カスタマー フィードバック