VC中基于单文档的程序中如何使用CRectTracker类
1、VC基于单文档的程序中如何使用CRectTracker类创建橡皮区矩形?2、使用该类后为什么就不能响应OnLButtonUp()了呢?...
1、VC基于单文档的程序中如何使用CRectTracker类创建橡皮区矩形?
2、使用该类后为什么就不能响应OnLButtonUp()了呢? 展开
2、使用该类后为什么就不能响应OnLButtonUp()了呢? 展开
展开全部
1.
CRectTracker m_tracker;
void CTestView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
m_tracker.m_rect.left = 10; // 左端の座标です
m_tracker.m_rect.top = 10; // 上端の座标です
m_tracker.m_rect.right = 101; // 右端の座标です
m_tracker.m_rect.bottom = 101; // 下端の座标です
m_tracker.m_nStyle |= CRectTracker::hatchInside | CRectTracker::resizeInside; // 外の枠线のスタイルを指定します
}
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
if (m_tracker.HitTest(point) < 0)
{
// HitTest()の结果がマイナスの场合 クリックされた位置は
// m_trackerの外侧です
}
else
{
// トラッキング処理を行います
m_tracker.Track(this, point,FALSE);
// 再描画します
InvalidateRect(NULL);
}
CView::OnLButtonDown(nFlags, point);
}
BOOL CTestView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
if (m_tracker.SetCursor(this, nHitTest))
return TRUE;
return CView::OnSetCursor(pWnd, nHitTest, message);
}
2.是的。这个事件被tracker使用了。要想知道这个事件需要增加代码。
CRectTracker m_tracker;
void CTestView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
m_tracker.m_rect.left = 10; // 左端の座标です
m_tracker.m_rect.top = 10; // 上端の座标です
m_tracker.m_rect.right = 101; // 右端の座标です
m_tracker.m_rect.bottom = 101; // 下端の座标です
m_tracker.m_nStyle |= CRectTracker::hatchInside | CRectTracker::resizeInside; // 外の枠线のスタイルを指定します
}
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
if (m_tracker.HitTest(point) < 0)
{
// HitTest()の结果がマイナスの场合 クリックされた位置は
// m_trackerの外侧です
}
else
{
// トラッキング処理を行います
m_tracker.Track(this, point,FALSE);
// 再描画します
InvalidateRect(NULL);
}
CView::OnLButtonDown(nFlags, point);
}
BOOL CTestView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
if (m_tracker.SetCursor(this, nHitTest))
return TRUE;
return CView::OnSetCursor(pWnd, nHitTest, message);
}
2.是的。这个事件被tracker使用了。要想知道这个事件需要增加代码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询