ツール ヒント用 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。使用しません。コントロール 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);