CRectTracker 概要用法

基本的皮筋用法


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);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,510评论 0 17
  • ## 可重入函数 ### 可重入性的理解 若一个程序或子程序可以安全的被并行执行,则称其为可重入的;即当该子程序正...
    夏至亦韵阅读 726评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,857评论 0 6
  • 今日来一首插曲,为大家送上一篇lamp在Ubuntu上的安装,首先介绍一下Lamp:LAMP 是指一组通常一起使用...
    geek丶Mc阅读 319评论 0 0