CWnd::EnableToolTips
Permite que as dicas de ferramenta para a janela determinada.
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
Parâmetros
- bEnable
Especifica se o controle de dica de ferramenta é ativado ou desabilitado.TRUE o controle; permite que FALSE desativa o controle.
Valor de retorno
TRUE se dicas de ferramenta estiverem ativadas; caso contrário, FALSE.
Comentários
Substituir OnToolHitTest para fornecer o TOOLINFO struct ou estruturas da janela.
Observação: |
---|
Algumas janelas, sistema autônomo CToolBar, fornecer uma implementação interna de OnToolHitTest. |
See TOOLINFO in the Windows SDK Para obter mais informações sobre essa estrutura.
Basta chamar EnableToolTips não é suficiente para exibir dicas de ferramenta para seus controles filho, a menos que a janela pai é derivada de CFrameWnd. Isso ocorre porque o CFrameWnd Fornece um manipulador padrão para o TTN_NEEDTEXT notificação.Se sua janela pai não é derivada de CFrameWnd, ou seja, se for uma caixa de diálogo ou um modo Formulário, as dicas de ferramenta para seus controles filho não serão exibidas corretamente, a menos que você forneça um manipulador para o TTN_NEEDTEXT notificação de dica de ferramenta.See Dicas de ferramenta.
As dicas de ferramenta padrão fornecidas para suas janelas por EnableToolTips não tem texto associado a eles. Para recuperar o texto para a ferramenta de dica para exibir o TTN_NEEDTEXT notificação é enviada para janela pai do controle de dica de ferramenta apenas antes que a janela de dica de ferramenta seja exibida.Se não houver nenhum manipulador para esta mensagem atribuir um valor ao pszText membro de TOOLTIPTEXT estrutura, não haja nenhum texto exibido para a dica de ferramenta.
Exemplo
// 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
Cabeçalho: afxwin.h