程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 智能連接線

智能連接線

編輯:關於VC++

一、經常使用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.添加OnLButtonDownvoid 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.添加OnSetCursorBOOL 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.添加OnDrawvoid 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.拖動線中間的的點可以移動整條線,拖動線的兩端可以改變線的長度,拖動兩條線的節點,可以改變兩條線的長度和位置。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved