CWnd::EnableToolTips
Включает всплывающие подсказки для данного окна.
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
Параметры
- bEnable
Указывает, включен ли элемент управления всплывающей подсказки или отключен. TRUE включает элемент управления; FALSE запрещает элемент управления.
Возвращаемое значение
Если TRUE всплывающие подсказки включены; в противном случае FALSE.
Заметки
Переопределение OnToolHitTest, чтобы предоставить структуру или структуры TOOLINFO для окна.
Примечание
Некоторые окна, как CToolBar, предоставляют встроенные реализацию OnToolHitTest.
См. раздел TOOLINFO в Windows SDK дополнительные сведения на этой структуре.
Просто вызвать EnableToolTips недостаточно для отображения советы по средства для дочерних элементов управления, если родительское окно не является производным от CFrameWnd. Это происходит потому, что CFrameWnd предоставляет используемый по умолчанию обработчик для уведомления TTN_NEEDTEXT. Если родительское окно не является производным от CFrameWnd, то есть, если диалоговое окно или представление формы, всплывающие подсказки для дочерних элементов управления не будут правильно, если не предусматрива обработчик уведомления всплывающей подсказки TTN_NEEDTEXT. См. раздел Всплывающие подсказки.
Советы по умолчанию средства, предоставленные для окон EnableToolTips не имеющих текст, связанный с ними. Чтобы получить текст подсказки для отображения уведомление TTN_NEEDTEXT отправлено родительского окна элемента управления всплывающей подсказки непосредственно перед окно всплывающей подсказки. Если обработчик для данного сообщения для присвоения некоторое значение к члену pszText структуры TOOLTIPTEXT, то будет никаких текст, отображаемый для всплывающей подсказки.
Пример
// 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
}
Требования
Header: afxwin.h