Udostępnij za pośrednictwem


CWnd::EnableToolTips

Umożliwia podpowiedzi dla danego okna.

BOOL EnableToolTips(
   BOOL bEnable = TRUE
);

Parametry

  • bEnable
    Określa, czy formant Wskazówka narzędzia jest włączona.TRUE umożliwia kontrolę; FALSE wyłącza formantu.

Wartość zwracana

TRUE , jeśli są włączone podpowiedzi; w przeciwnym razie FALSE.

Uwagi

Zastąpić OnToolHitTest zapewnienie TOOLINFO struct lub strukturach okna.

[!UWAGA]

Niektóre systemu windows, takich jak CToolBar, zapewniają wbudowane wykonania OnToolHitTest.

Zobacz TOOLINFO w Windows SDK więcej informacji na temat tej struktury.

Po prostu wywołanie EnableToolTips nie jest wystarczająco, aby wyświetlać podpowiedzi dla formantów dziecko, chyba że pochodzi okno nadrzędne CFrameWnd.Wynika to z CFrameWnd zawiera domyślny program obsługi dla TTN_NEEDTEXT powiadomienia.Jeśli Twoje okno nadrzędne nie pochodzi od CFrameWnd, który jest, jeśli jest okno dialogowe lub widok formularza, etykietki narzędzi dla dziecka formanty nie będą wyświetlane poprawnie chyba że stanowią obsługi dla TTN_NEEDTEXT narzędzie powiadomienia tip.Zobacz podpowiedzi.

Podpowiedzi domyślne dostarczane dla systemu windows przez EnableToolTips nie ma skojarzonych z nimi tekstu.Aby pobrać tekst podpowiedzi do wyświetlania, TTN_NEEDTEXT powiadomienie jest wysyłane do sterowania Porada narzędzia okno nadrzędne tuż przed zostanie wyświetlone okno Wskazówka do narzędzia.Jeśli jest brak obsługi dla tej wiadomości przypisać wartość niektórych pszText członek TOOLTIPTEXT struktury, będą wyświetlane podpowiedzi tekstu.

Przykład

// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
   CView::OnInitialUpdate();

   m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
      CRect(10, 10, 100, 100), this, IDC_TTEDIT);
   EnableToolTips(TRUE);   // enable tool tips for view
}

//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
   UNREFERENCED_PARAMETER(id);
   UNREFERENCED_PARAMETER(pResult);

   // need to handle both ANSI and UNICODE versions of the message
   TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
   TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
   CStringA strTipText;
   UINT_PTR nID = pNMHDR->idFrom;
   if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
      pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
   }

   if (nID != 0) // will be zero on a separator
      strTipText.Format("Control ID = %d", nID);

   if (pNMHDR->code == TTN_NEEDTEXTA)
   {
      strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText, 
         strTipText.GetLength() + 1);
   }
   else
   {
      ::MultiByteToWideChar(CP_ACP , 0, strTipText, strTipText.GetLength() + 1,
         pTTTW->szText, sizeof(pTTTW->szText)/(sizeof pTTTW->szText[0]));
   }

   return TRUE;    // message was handled
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CWnd

Wykres hierarchii

CWnd::CancelToolTips

CWnd::OnToolHitTest

Klasa CToolBar

TOOLINFO