Obsługa powiadomienia TTN_NEEDTEXT w przypadku etykietek narzędzi
W ramach włączania porad dotyczących narzędzi można obsługiwać komunikat TTN_NEEDTEXT , dodając następujący wpis do mapy komunikatów okna właściciela:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
memberFxn
Funkcja składowa, która ma być wywoływana, gdy potrzebny jest tekst dla tego przycisku.
Należy pamiętać, że identyfikator porady narzędzia to zawsze 0.
Zadeklaruj funkcję obsługi w definicji klasy w następujący sposób:
afx_msg BOOL OnTtnNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
gdzie parametry kursywy to:
id
Identyfikator kontrolki, która wysłała powiadomienie. Nie używany. Identyfikator kontrolki jest pobierany ze struktury NMHDR .
pNMHDR
Wskaźnik do struktury NMTTDISPINFO . Ta struktura została również omówiona w temacie Struktura TOOLTIPTEXT.
Presult
Wskaźnik do kodu wynikowego, który można ustawić przed zwróceniem. TTN_NEEDTEXT programy obsługi mogą ignorować parametr pResult.
Przykładem procedury obsługi powiadomień widoku formularza:
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;
}
Wywołanie EnableToolTips
(ten fragment pobrany z OnInitDialog
elementu ):
EnableToolTips(TRUE);
Zobacz też
Etykietki narzędzi w systemie Windows niepochodzące od obiektu CFrameWnd