Behandeln der TTN_NEEDTEXT-Benachrichtigung für QuickInfos

Im Rahmen der Aktivierung von Tooltipps behandeln Sie die TTN_NEEDTEXT Nachricht, indem Sie den folgenden Eintrag zur Nachrichtenzuordnung Ihres Besitzerfensters hinzufügen:

ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)

memberFxn
Die Memberfunktion, die aufgerufen werden soll, wenn Text für diese Schaltfläche benötigt wird.

Beachten Sie, dass die ID einer QuickInfo immer 0 ist.

Deklarieren Sie die Handlerfunktion in der Klassendefinition wie folgt:

afx_msg BOOL OnTtnNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult);

dabei sind die kursiv formatierten Parameter:

id
Bezeichner des Steuerelements, das die Benachrichtigung gesendet hat. Nicht verwendet. Die Steuerelement-ID stammt aus der NMHDR-Struktur .

pNMHDR
Ein Zeiger auf die NMTTDISPINFO-Struktur . Diese Struktur wird auch in der TOOLTIPTEXT-Struktur weiter diskutiert.

pResult
Ein Zeiger auf Ergebniscode, den Sie vor der Rückgabe festlegen können. TTN_NEEDTEXT Handler können den pResult-Parameter ignorieren.

Beispiel für einen Benachrichtigungshandler für Formularansichten:

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 stammt von OnInitDialog):

EnableToolTips(TRUE);

Siehe auch

QuickInfos in Fenstern, die nicht von CFrameWnd abgeleitet sind