Резин- Помощью Диапазонов и отслежыватели
Другая функция, предоставляемая с отслежывателями выделение «резин-полосы», которое позволяет пользователю выбирать несколько элементов OLE, перетащив прямоугольник рамки вокруг элементов, которые нужно выбрать.Выпуски пользователя, если левая кнопка мыши, элементы в области выбранной пользователем выделения и могут быть манипулированы пользователем.Например, пользователь может перетаскивать выделение в другой приложение-контейнер.
Реализация этой функции требует какого-либо дополнительного кода в функции обработчика WM_LBUTTONDOWN приложения.
Следующий образец кода реализует выделение резин-полосы и дополнительные функции.
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);
}
}
}
Если нужно разрешить реверзибельная ориентация отслеживания во время резин-использования диапазонов, необходимо вызвать метод CRectTracker::TrackRubberBand с третьим параметром в Истина.Следует помнить, что разрешения реверзибельная ориентация иногда будет приводить к CRectTracker::m_rect стать обращенным.Это может быть исправлена вызовом CRect::NormalizeRect.
Дополнительные сведения см. в разделе Клиентские элементы контейнера и Настраивать перетаскивание.
См. также
Ссылки
Основные понятия
Отслежыватели: Реализация отслежыватели в вашем приложении OLE