美文网首页
CRectTracker 概要用法

CRectTracker 概要用法

作者: 风轻知道 | 来源:发表于2017-08-01 23:56 被阅读16次

    基本的皮筋用法


    MFC代码:

    BOOL CDlgTest::OnInitDialog()

    {

    CDialog::OnInitDialog();

    // TODO:  在此添加额外的初始化

    m_tracker.m_nStyle = CRectTracker::resizeOutside | CRectTracker::solidLine;

    m_tracker.m_nHandleSize = 6;

    m_tracker.m_rect.SetRect(0,0,100,100);

    return TRUE;  // return TRUE unless you set the focus to a control

    // 异常: OCX 属性页应返回 FALSE

    }

    BOOL CDlgTest::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)

    {

    // TODO: 在此添加消息处理程序代码和/或调用默认值

    if (m_tracker.SetCursor(pWnd, nHitTest)) {

    return TRUE;

    }

    return CDialog::OnSetCursor(pWnd, nHitTest, message);

    }

    void CDlgTest::OnLButtonDown(UINT nFlags, CPoint point)

    {

    // TODO: 在此添加消息处理程序代码和/或调用默认值

    if (m_tracker.HitTest(point) < 0) {

    //m_tracker.TrackRubberBand(this, point);

    } else {

    m_tracker.Track(this, point, TRUE);

    m_edit.MoveWindow(&m_tracker.m_rect);

    if (m_lastWidth > 0) {

    float x = (float)m_tracker.m_rect.Size().cx / (float) m_lastWidth;

    int n = x * 100;

    m_edit.PostMessage(EM_SETZOOM, n, 100);

    }

    else {

    m_lastWidth = m_tracker.m_rect.Size().cx;

    }

    }

    Invalidate();

    CDialog::OnLButtonDown(nFlags, point);

    }

    void CDlgTest::OnPaint()

    {

    CPaintDC dc(this); // device context for painting

    // TODO: 在此处添加消息处理程序代码

    // 不为绘图消息调用 CDialog::OnPaint()

    m_tracker.Draw(&dc);

    }

    相关文章

      网友评论

          本文标题:CRectTracker 概要用法

          本文链接:https://www.haomeiwen.com/subject/bonslxtx.html