VC中基于单文档的程序中如何使用CRectTracker类

2025-03-01 20:56:49
推荐回答(1个)
回答1:

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使用了。要想知道这个事件需要增加代码。