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