Partager via


CWnd::EnableToolTips

Active des info-bulles pour la fenêtre donnée.

BOOL EnableToolTips( 
   BOOL bEnable = TRUE 
);

Paramètres

  • bEnable
    Spécifie si le contrôle d'info-bulle est activé ou désactivé. TRUE active le contrôle ; FALSE désactive le contrôle.

Valeur de retour

TRUE si les info-bulles sont activées ; sinon FALSE.

Notes

Substitution OnToolHitTest pour fournir la structure ou les structures de TOOLINFO de la fenêtre.

Notes

Certaines fenêtres, telles que CToolBar, fournissent une implémentation intégrée d' OnToolHitTest.

Consultez TOOLINFO dans Kit de développement logiciel Windows pour plus d'informations sur cette structure.

Appelez simplement EnableToolTips ne suffit pas pour afficher des info-bulles pour vos contrôles enfants à moins que la fenêtre parente est dérivée d' CFrameWnd. En effet CFrameWnd fournit un gestionnaire par défaut pour la notification de TTN_NEEDTEXT . Si votre fenêtre parente n'est pas dérivée d' CFrameWnd, c. autrement dit., s'il s'agit d'une boîte de dialogue ou un mode formulaire, des info-bulles pour vos contrôles enfants n'afficheront pas correctement à moins que vous ne fournissiez un gestionnaire pour la notification d'info-bulle de TTN_NEEDTEXT . Consultez l' Info-bulles.

Les info-bulles par défaut données pour vos fenêtres par EnableToolTips n'ont pas de texte associé avec elles. Pour extraire le texte de l'info-bulle affiche, la notification de TTN_NEEDTEXT est envoyé à la fenêtre parente du contrôle d'info-bulle juste avant la fenêtre d'info-bulle s'affiche. S'il n'y a aucun gestionnaire pour ce message assigne une valeur à un membre d' pszText de la structure de TOOLTIPTEXT , il n'y a aucun texte affiché pour l'info-bulle.

Exemple

// 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
}

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::CancelToolTips

CWnd::OnToolHitTest

CToolBar, classe

TOOLINFO