磁性窗体源码开源 - 开源研究系列文章

对于IT软件开源领域,笔者关注的还不够多,虽然前面共享过一些源码,但是对软件开源所做的内容还不够(见文:开篇:开源研究的启示 - 开源研究系列文章)。所以,后续笔者会陆续开源一些自己以前编写的程序源码,就当做笔者开源的一点贡献吧。

  本文将要描述以前编写的一个VB6的仿Winamp的磁性窗体的源码,这个源码是04年笔者在大学毕业设计之余编写的,如果大家有需要的就看看吧。此源码是VB6编写的,如果需要C#版本请大家自己编写。从VB6源码也能转换到VB.NET,但是因为是x86架构,在x64架构的操作系统里没法使用,这个大家需要关注。

  本文涉及到的VB6的架构,本项目只是针对磁性窗体类模块编写的,如果需要高级的架构,请大家见文:VB程序架构分析。还有一个使用该类模块的小作品,见文:VB6 磁性移动窗体类模块MagneticFormHelper使用。

 

  1、  先看看程序结构:

  磁性窗体源码开源 - 开源研究系列文章_第1张图片

  这里定义了一个主窗体Form1,两个子窗体Form2,Form3。一个模块Module1,用来声明程序公共函数。一个clsHelpers类模块,用来声明使用到的帮助类。还有就是今天的主角clsMagneticForm类模块,声明了磁性窗体所使用到的函数。

 

  2、  下面看看Module1.bas。

  这里对磁性窗体的参数进行了设置。然后加载显示各个窗体。

 

  3、  下面看看clsHelpers.cls文件。

  磁性窗体源码开源 - 开源研究系列文章_第2张图片

  这里声明了磁性窗体类模块变量,统一对类模块进行管理。具体功能描述见上面的VB6架构分析。

 

  4、  下面对窗体调用磁性窗体类模块进行描述。

  代码比较简单,直接在事件中进行调用即可。

  磁性窗体源码开源 - 开源研究系列文章_第3张图片

 

  5、  下面主要对磁性窗体主类模块clsMagneticForm.cls进行分析。

  使用两个数组对窗体句柄和窗体位置、长度等进行了保存。

  设置主窗体(只有一个主窗体),还有多个子窗体,以及窗体吸附距离。

  这里是窗体鼠标单击下后的事件,重新获取了主窗体和子窗体的各个位置长度的,为下面的鼠标移动事件做准备。

  然后就是鼠标移动事件,这里处理了所有主窗体和子窗体的吸附,移动问题。

 

  6、  最后总结下。

  本文主要对仿Winamp磁性吸附、移动窗体的实现代码进行了简要的描述,其中主要使用主窗体和子窗体的联合移动这块比较实用。

  具体源码功能大家在使用时有问题请自行修改,或者联系笔者:[email protected]

 

 

Etc.本文就当做笔者自己开源方面的一个开头点,希望后续有更多的代码能够开源分享给大家。

 

你可能感兴趣的:(磁性窗体源码开源 - 开源研究系列文章)