zoukankan      html  css  js  c++  java
  • 磁性窗体源码开源

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

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

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

      1、  先看看程序结构:

      

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

      2、  下面看看Module1.bas。

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

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

      

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

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

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

      

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

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

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

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

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

      6、  最后总结下。

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

      具体源码功能大家在使用时有问题请自行修改,或者联系笔者:lzhdim@163.com

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

  • 相关阅读:
    Leetcode 127 **
    Leetcode 145
    Leetcode 144
    Leetcode 137
    Leetcode 136
    重写nyoj2——括号匹配
    堆排序
    Leetcode 150
    【转】个人最常用的Eclipse快捷键
    Ajax编程中,经常要能动态的改变界面元素的样式
  • 原文地址:https://www.cnblogs.com/lzhdim/p/5139066.html
Copyright © 2011-2022 走看看