天天看點

磁性窗體源碼開源 - 開源研究系列文章

  本文将要描述以前編寫的一個VB6的仿Winamp的磁性窗體的源碼,這個源碼是04年筆者在大學畢業設計之餘編寫的,如果大家有需要的就看看吧。此源碼是VB6編寫的,如果需要C#版本請大家自己編寫。從VB6源碼也能轉換到VB.NET,但是因為是x86架構,在x64架構的作業系統裡沒法使用,這個大家需要關注。

  1、  先看看程式結構:

  

磁性窗體源碼開源 - 開源研究系列文章

  這裡定義了一個主窗體Form1,兩個子窗體Form2,Form3。一個子產品Module1,用來聲明程式公共函數。一個clsHelpers類子產品,用來聲明使用到的幫助類。還有就是今天的主角clsMagneticForm類子產品,聲明了磁性窗體所使用到的函數。

  2、  下面看看Module1.bas。

  這裡對磁性窗體的參數進行了設定。然後加載顯示各個窗體。

  3、  下面看看clsHelpers.cls檔案。

磁性窗體源碼開源 - 開源研究系列文章

  這裡聲明了磁性窗體類子產品變量,統一對類子產品進行管理。具體功能描述見上面的VB6架構分析。

  4、  下面對窗體調用磁性窗體類子產品進行描述。

  代碼比較簡單,直接在事件中進行調用即可。

磁性窗體源碼開源 - 開源研究系列文章

  5、  下面主要對磁性窗體主類子產品clsMagneticForm.cls進行分析。

  使用兩個數組對窗體句柄和窗體位置、長度等進行了儲存。

  設定主窗體(隻有一個主窗體),還有多個子窗體,以及窗體吸附距離。

  這裡是窗體滑鼠單擊下後的事件,重新擷取了主窗體和子窗體的各個位置長度的,為下面的滑鼠移動事件做準備。

  然後就是滑鼠移動事件,這裡處理了所有主窗體和子窗體的吸附,移動問題。

  6、  最後總結下。

  本文主要對仿Winamp磁性吸附、移動窗體的實作代碼進行了簡要的描述,其中主要使用主窗體和子窗體的聯合移動這塊比較實用。

Etc.本文就當做筆者自己開源方面的一個開頭點,希望後續有更多的代碼能夠開源分享給大家。