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