Étirement et mécanismes de traçage
Une autre fonctionnalité fournie avec les mécanismes de trace est la sélection de « caoutchouc-bande », qui permet à un utilisateur de sélectionner plusieurs OLE éléments en faisant glisser un rectangle de redimensionnement autour des éléments à sélectionner.Lorsque l'utilisateur relâche le bouton gauche de la souris, des éléments dans la zone sélectionnée par l'utilisateur sont sélectionnés et peuvent être manipulés par l'utilisateur.Par exemple, l'utilisateur peut faire glisser la sélection dans une autre application conteneur.
L'implémentation de cette fonctionnalité requiert un code supplémentaire dans la fonction gestionnaire d' WM_LBUTTONDOWN de votre application.
L'exemple de code suivant implémente la sélection et les fonctionnalités de caoutchouc-bande.
else if (m_Tracker.HitTest(point) < 0)
{
// just to demonstrate CRectTracker::TrackRubberBand
CRectTracker trackerRubber;
if (trackerRubber.TrackRubberBand(this, point, TRUE))
{
MessageBeep(0); // beep indicates TRUE
// See if rubber band intersects
// with the doc's tracker
CRect rectT;
// so intersect rect works
trackerRubber.m_rect.NormalizeRect();
if (rectT.IntersectRect(trackerRubber.m_rect, m_Tracker.m_rect))
{
// If so, put resize handles on it (i.e. select it)
if (m_Tracker.m_nStyle & CRectTracker::resizeInside)
{
// swap from resize inside to resize outside for effect
m_Tracker.m_nStyle &= ~CRectTracker::resizeInside;
m_Tracker.m_nStyle |= CRectTracker::resizeOutside;
}
else
{
// Just use inside resize handles on first time
m_Tracker.m_nStyle &= ~CRectTracker::resizeOutside;
m_Tracker.m_nStyle |= CRectTracker::resizeInside;
}
GetDocument()->SetModifiedFlag();
GetDocument()->UpdateAllViews(NULL);
}
}
}
Si vous souhaitez autoriser l'orientation réversible du dispositif de suivi pendant l'étirement, vous devez appeler CRectTracker::TrackRubberBand avec le troisième paramètre a TRUE.N'oubliez pas que permet l'orientation réversible fait parfois soit CRectTracker::m_rect inversé.Cela peut être corrigé par un appel à CRect::NormalizeRect.
Pour plus d'informations, consultez éléments client de conteneur et le personnaliser le glisser-déplacer.
Voir aussi
Référence
Concepts
Mécanismes de suivi : Implémenter des mécanismes de traçage dans votre application OLE