處理工具提示的 TTN_NEEDTEXT 告知
在啟用工具提示 時 ,您會將下列專案新增至擁有者視窗的訊息對應,以處理 TTN_NEEDTEXT 訊息:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
memberFxn
此按鈕需要文字時要呼叫的成員函式。
請注意,工具提示的識別碼一律為 0。
在類別定義中宣告您的處理常式函式,如下所示:
afx_msg BOOL OnTtnNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
其中斜體參數為:
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);