Freigeben über


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