Behandeln der TTN_NEEDTEXT-Benachrichtigung für QuickInfos
Als Teil Aktivieren von QuickInfos bearbeiten Sie die TTN_NEEDTEXT Meldung, indem Sie den folgenden Eintrag zur Meldungszuordnung des Besitzerfensters hinzufügen:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
- memberFxn
Die Memberfunktion, aufgerufen werden, wenn Text für diese Schaltfläche benötigt wird.
Beachten Sie, dass die ID einer QuickInfo immer 0.
Deklarieren Sie die Handlerfunktion in der Klassendefinition, wie folgt:
afx_msg BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
wobei die kursiv gedruckten Parameter sind:
id
Bezeichner des Steuerelements, das die Benachrichtigung gesendet. Nicht verwendet. Die Steuerelement-ID wird von der NMHDR-Struktur ausgeführt.pNMHDR
Ein Zeiger auf NMTTDISPINFO-Struktur. Diese Struktur wird auch in Die TOOLTIPTEXT-Struktur weiter erläutert.pResult
Ein Zeiger, an führen Code, den Sie festlegen können, bevor Sie zurückkehren. TTN_NEEDTEXT Sie können den Parameter pResult ignorieren.
Als Beispiel für einen Formularansichtsbenachrichtigungshandler:
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;
}
Aufruf EnableToolTips (dieses Fragment die der OnInitDialog):
EnableToolTips(TRUE);
Siehe auch
Konzepte
QuickInfos in Fenstern, die nicht von CFrameWnd abgeleitet sind