|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: CItem<65><6D><EFBFBD><EFBFBD>չ
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
|
|
|
|
|
// <09><><EFBFBD><EFBFBD>VC<56>Դ<EFBFBD><D4B4><EFBFBD>CRectTracker<65><72>ʵ<EFBFBD><CAB5>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>: 2008<30><38>3<EFBFBD><33>28<32><38>
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
|
#include ".\itemrecttracker.h"
|
|
|
|
|
|
#include "SigmaDoc.h"
|
|
|
|
|
|
#include "SigmaView.h"
|
|
|
|
|
|
|
|
|
|
|
|
NItem::CItemRectTracker::CItemRectTracker(CSigmaDoc* ppDoc)
|
|
|
|
|
|
: CItem(ppDoc)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_tracker.m_rect = CRect(0,0,0,0);
|
|
|
|
|
|
m_tracker.m_nStyle = 0;
|
|
|
|
|
|
m_tracker.m_nStyle |= CRectTrackerEx::dottedLine;
|
|
|
|
|
|
m_tracker.m_nStyle |= CRectTrackerEx::resizeOutside;
|
|
|
|
|
|
//m_tracker.m_nStyle |= CRectTracker::hatchedBorder;
|
|
|
|
|
|
m_bAllowInvert=TRUE;
|
|
|
|
|
|
|
|
|
|
|
|
m_tracker.m_nHandleSize = 6;
|
|
|
|
|
|
m_tracker.m_sizeMin.cx = 4;
|
|
|
|
|
|
m_tracker.m_sizeMin.cy = 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
NItem::CItemRectTracker::~CItemRectTracker(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NItem::CItemRectTracker::EnableHatchBorder(BOOL bEnable)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_tracker.m_nStyle &= ~CRectTrackerEx::hatchedBorder;
|
|
|
|
|
|
if(bEnable)
|
|
|
|
|
|
m_tracker.m_nStyle |= CRectTrackerEx::hatchedBorder;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NItem::CItemRectTracker::EnableHatchInside(BOOL bEnable)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_tracker.m_nStyle &= ~CRectTrackerEx::hatchInside;
|
|
|
|
|
|
if(bEnable)
|
|
|
|
|
|
m_tracker.m_nStyle |= CRectTrackerEx::hatchInside;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CItemRectTracker::OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk)
|
|
|
|
|
|
{
|
|
|
|
|
|
CItem::OnLButtonDown(pDC, nFlags, point, vk);
|
|
|
|
|
|
|
|
|
|
|
|
m_bakRect=m_tracker.m_rect;
|
|
|
|
|
|
if (m_tracker.HitTest(point) < 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CRectTracker track;
|
|
|
|
|
|
//if (track.TrackRubberBand(GetView(), point, m_bAllowInvert))
|
|
|
|
|
|
//{
|
|
|
|
|
|
// //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// track.m_rect.NormalizeRect();
|
|
|
|
|
|
// m_tracker.m_rect = track.m_rect;
|
|
|
|
|
|
// TraceEnd(-1);
|
|
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
////<2F><EFBFBD><DEB8><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//if (m_tracker.Track(GetView(), point, m_bAllowInvert))
|
|
|
|
|
|
//{
|
|
|
|
|
|
// m_tracker.m_rect.NormalizeRect();
|
|
|
|
|
|
// TraceEnd(1);
|
|
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NItem::CItemRectTracker::TraceEnd(int nStatus)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NItem::CItemRectTracker::OnDraw(CXyDC* pXyDC, CDC* pDC)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_tracker.m_rect.Width() > 0 && m_tracker.m_rect.Height() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//m_tracker.Draw(GetScreenDC());
|
|
|
|
|
|
m_tracker.Draw(pDC);
|
|
|
|
|
|
}
|
|
|
|
|
|
//m_tracker.Draw(pDC->GetDC());/*, RGB(255,0,0)*/
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
BOOL NItem::CItemRectTracker::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(pWnd)
|
|
|
|
|
|
if(m_tracker.SetCursor( pWnd, nHitTest )) return TRUE;
|
|
|
|
|
|
return FALSE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NItem::CItemRectTracker::SetRect(CRect8 rect)
|
|
|
|
|
|
{
|
|
|
|
|
|
CRect rt=GetDC()->GetScreen(rect);
|
|
|
|
|
|
rt.NormalizeRect();
|
|
|
|
|
|
m_tracker.m_rect=rt;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CRect8 NItem::CItemRectTracker::GetRect(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return GetDC()->GetReal(m_tracker.m_rect);
|
|
|
|
|
|
}
|