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