CWnd::EnableToolTips
Habilita la información sobre herramientas de la ventana especificada.
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
Parámetros
- bEnable
Especifica si el control de información sobre herramientas está habilitado o deshabilitado. TRUE habilita el control; FALSE deshabilita el control.
Valor devuelto
TRUE si se habilitan la información sobre herramientas; si no FALSE.
Comentarios
Reemplazo OnToolHitTest para proporcionar el struct o los structs de TOOLINFO para la ventana.
Nota
Algunas ventanas, como CToolBar, proporcionan una implementación integrada de OnToolHitTest.
Vea TOOLINFO en Windows SDK para obtener más información sobre esta estructura.
Simplemente llamar EnableToolTips no es suficiente para mostrar información sobre herramientas para sus controles secundarios a menos que la ventana principal se deriva de CFrameWnd. Esto es porque CFrameWnd proporciona un controlador predeterminado para la notificación de TTN_NEEDTEXT . Si su ventana primaria no se deriva de CFrameWnd, es decir, si es un cuadro de diálogo o una vista de formulario, la información sobre herramientas de los controles secundarios no se mostrarán correctamente a menos que proporcione un controlador para la notificación de información sobre herramientas de TTN_NEEDTEXT . Vea Información sobre herramientas.
La información sobre herramientas predeterminadas proporcionadas para las ventanas por EnableToolTips no tienen texto asociado a ellas. Para recuperar el texto de la información sobre herramientas muestra, notificación de TTN_NEEDTEXT se envía a la ventana primaria de control tooltip justo antes de que se muestra la ventana de la información sobre herramientas. Si no hay ningún controlador para que este mensaje asignar un valor al miembro de pszText de la estructura de TOOLTIPTEXT , no habrá texto mostrado para la información sobre herramientas.
Ejemplo
// 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
}
Requisitos
encabezado: afxwin.h