智能连接线
作者:
一、经常使用Microsoft visio画流程图,觉得其中的智能连接线非常好用,可以手动调节,非常灵活,所以自己写了一个同样功能的类。
图一 连接线
二、步骤
1.创建一个工程,基于文档视图结构的(单文档、多文档都可以)
2.添加文件SmartLines.h到工程
3.在要显示连接线的视图中包含SmartLines.h
...
#include "SmartLines.h"
...
4.拷贝SmartLines.dll和SmartLines.lib到工程文件夹
5.在输入库列表中添加SmartLines.lib导入库
图二 工程设置
6.在要显示连接线的视图中添加一个CSmartLines的成员变量
CSmartLines m_lines;
7.添加OnLButtonDown
void CTestSmartLinesView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_lines.Track(this,point);
CScrollView::OnLButtonDown(nFlags, point);
}
8.添加OnSetCursor
BOOL CTestSmartLinesView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if (m_lines.OnSetCursor(pWnd, nHitTest))
{
return TRUE;
}
return CScrollView::OnSetCursor(pWnd, nHitTest, message);
}
9.添加OnDraw
void CTestSmartLinesView::OnDraw(CDC* pDC)
{
CTestSmartLinesDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
m_lines.Draw(pDC);
}
三、说明
1.在view的构造函数里初始化了6条线,可以添加任意多条,注意添加线首尾的point要一致。
2.平行的线只能上下移动,垂直的线只能左右移动。
3.拖动线中间的的点可以移动整条线,拖动线的两端可以改变线的长度,拖动两条线的节点,可以改变两条线的长度和位置。
--------------------next---------------------
请发一份onehard@gmail.com 十分感謝! ( onehard 发表于 2007-11-29 15:38:00)
onehard@gmail.com 十分感謝! ( onehard 发表于 2007-11-29 15:37:00)
发现一个小Bug,当把线拖到最右边时,标题栏中的按钮都不见了。( XP SP2 ) ( clxye 发表于 2007-9-21 14:34:00)
请发一份SmartLines.cpp到hlnbd@yahoo.com.cn谢谢! ( hln_sh 发表于 2007-8-23 11:04:00)
请发一份SmartLines.cpp到bugtraq2005@163.com
Thanks. ( linux2linux 发表于 2007-4-11 11:17:00)
请发一份SmartLines.cpp到yumenglin020@126.com
谢谢! ( dcs020 发表于 2007-4-4 19:32:00)
请发一份SmartLines.cpp到
chenwu_8126@sohu.com
谢谢! ( ChenWu_8126 发表于 2007-1-30 23:02:00)
挺实用的,请作者发一份SmartLines.cpp到我邮箱
shiguiguo@163.com! 谢谢了
( shiguiguo 发表于 2007-1-27 18:16:00)
请发一份到njzhangzhang@yahoo.com.cn,谢谢! ( piaodang 发表于 2006-12-30 10:45:00)
heroin_hzp@163.com ( heroinheroin 发表于 2006-12-25 11:11:00)
.......................................................
--------------------next---------------------