CRectTracker & CScrollView
Posted: 09 Aug 2010, 19:10
Am un CRectTracker pe care l-am folosit intr-un CScrollView . Cand dreptunghiul se muta pe view si iese din zona vizibila :
am pus cod pentru redimensionarea CScrollView-ului pentru a aparea scroll-urile . Functioneaza totul bine pana intr-o situatie : daca o parte a dreptunghiului desenat iese in afara zonei vizibile ( ma repet ) si se actioneaza scroll-ul , dreptunghiul nu respecta pozitia noua , ci isi mentine vechea pozitie , si ca sa fie si mai sugestiv am desenat dreptunghiul in rosu . Proiectul este atasat pentru exemplificare ...
Code: Select all
void CTestTracker2View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CTestTracker2Doc* pDoc = GetDocument();
if(pDoc->m_Tracker.HitTest(point) < 0)pDoc->m_Tracker.TrackRubberBand(this,point);
else pDoc->m_Tracker.Track(this,point);
CSize SizeTotal = GetTotalSize();
if(SizeTotal.cx < pDoc->m_Tracker.m_rect.BottomRight().x)SizeTotal.cx = pDoc->m_Tracker.m_rect.BottomRight().x + 10;
if(SizeTotal.cy < pDoc->m_Tracker.m_rect.BottomRight().y)SizeTotal.cy = pDoc->m_Tracker.m_rect.BottomRight().y + 10;
SetScrollSizes(MM_TEXT,SizeTotal);
Invalidate();
CScrollView::OnLButtonDown(nFlags, point);
}