Manipulation du contrôle d'info-bulle
La classe CToolTipCtrl
fournit un groupe de fonctions membres qui contrôlent les différents attributs de l’objet CToolTipCtrl
et la fenêtre d’info-bulle.
Les durées initiales, contextuelles et de réinitialisation des fenêtres d’info-bulles peuvent être définies et récupérées avec des appels à GetDelayTime et SetDelayTime.
Modifiez l’apparence des fenêtres d’info-bulle avec les fonctions suivantes :
GetMargin et SetMargin Récupère et définit la largeur entre la bordure de l’info-bulle et le texte de l’info-bulle.
GetMaxTipWidth et SetMaxTipWidth Récupère et définit la largeur maximale de la fenêtre d’info-bulle.
GetTipBkColor et SetTipBkColor Récupère et définit la couleur d’arrière-plan de la fenêtre info-bulle.
GetTipTextColor et SetTipTextColor Récupère et définit la couleur du texte de la fenêtre info-bulle.
Pour que le contrôle info-bulle soit averti des messages importants, tels que les messages WM_LBUTTONXXX, vous devez relayer les messages à votre contrôle info-bulle. La meilleure méthode pour ce relais consiste à effectuer un appel à CToolTipCtrl ::RelayEvent, dans la PreTranslateMessage
fonction de la fenêtre propriétaire. L’exemple suivant illustre une méthode possible (en supposant que le contrôle d’info-bulle est appelé m_ToolTip
) :
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_LBUTTONDOWN ||
pMsg->message == WM_LBUTTONUP ||
pMsg->message == WM_MOUSEMOVE)
{
m_ToolTipCtrl.RelayEvent(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}
Pour supprimer immédiatement une fenêtre d’info-bulle, appelez la fonction membre Pop .