Partilhar via


CWnd::EnableToolTips

Permite que a dica de ferramenta para a janela determinada.

BOOL EnableToolTips(
   BOOL bEnable = TRUE
);

Parâmetros

  • bEnable
    Especifica se o controle dica de ferramenta está ativado ou desativado.Verdadeiro permite que o controle; Falso desativa o controle.

Valor de retorno

SeVerdadeiro dicas de ferramenta são ativadas; se não Falso.

Comentários

Substituição OnToolHitTest para fornecer a estrutura ou as estruturas de TOOLINFO para a janela.

ObservaçãoObservação

Algumas janelas, como CToolBar, fornecem uma implementação interna de OnToolHitTest.

Consulte TOOLINFO em Windows SDK para obter mais informações sobre essa estrutura.

Chamar EnableToolTips não é suficiente para exibir a dica de ferramenta para seus controles filho a menos que a janela pai é derivada de CFrameWnd.Isso ocorre porque CFrameWnd fornece um manipulador padrão para a notificação de TTN_NEEDTEXT .Se sua janela pai não é derivada de CFrameWnd, isto é, se é uma caixa de diálogo ou uma visualização do formulário, dicas de ferramenta para seus controles filho não serão exibidos corretamente a menos que você fornecer um manipulador para notificação de dica de ferramenta de TTN_NEEDTEXT .Consulte Dicas de ferramenta.

Dicas de ferramenta padrão fornecidas para suas janelas por EnableToolTips não têm o texto associado com eles.Para recuperar o texto para que a dica de ferramenta exibe, a notificação de TTN_NEEDTEXT é enviada para a janela pai do controle dica de ferramenta imediatamente antes da janela dica de ferramenta é exibida.Se não houver nenhum manipulador para esta mensagem que atribui um valor ao membro de pszText estrutura de TOOLTIPTEXT , não haverá 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

Consulte também

Referência

CWnd Class

Gráfico de hierarquia

CWnd::CancelToolTips

CWnd::OnToolHitTest

Classe de CToolBar

TOOLINFO