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

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

对于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.本文就当做笔者自己开源方面的一个开头点,希望后续有更多的代码能够开源分享给大家。

 

目录
相关文章
|
安全 区块链 数据安全/隐私保护
蚂蚁区块链的优势是什么
蚂蚁区块链的优势是什么
739 2
|
应用服务中间件
Web开发:关于Tomcat出现The origin server did not find a current representation for the target resourc...的问题
Web开发:关于Tomcat出现The origin server did not find a current representation for the target resourc...的问题
576 0
|
机器学习/深度学习 人工智能 运维
未来智能运维:人工智能在云计算运维中的应用
随着云计算技术的不断发展,传统的运维方式已经无法满足日益复杂的系统需求。本文探讨了人工智能在云计算运维中的应用,介绍了未来智能运维的发展趋势和挑战。
342 3
|
弹性计算 Linux 开发工具
阿里云学生服务器购买流程与学生认证条件详解!
阿里云学生服务器购买流程与学生认证条件详解!如果你从未参与过阿里云高校学生免费领取ECS的活动,在通过学生身份认证及续费任务后,最多可领取1+6个月免费云服务器ECS资源
343 0
|
Unix 关系型数据库 MySQL
Unix时间戳
Unix时间戳
528 0
|
6天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
17天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1320 7