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

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

 

目录
相关文章
|
4月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
171 3
|
4月前
|
人工智能 JSON 算法
不是吧?这么好用的开源标注工具,竟然还有人不知道…
LabelU是一款专为AI项目设计的强大多模态数据标注工具,支持图像、视频、音频等多样化数据类型。它提供灵活的标注工具与自定义配置选项,让用户根据需求定制高效标注流程。特色功能包括一键载入预标注结果以简化修正工作,以及支持JSON、COCO等多种格式的导出选项。LabelU既可本地部署确保数据安全,也提供在线版本方便快速上手。此外,OpenDataLab还开源了Label-LLM对话标注工具和MinerU文档处理工具,进一步丰富了数据准备的工作流。欢迎访问[LabelU](https://github.com/opendatalab/labelU)了解更多详情,并为这些优秀工具点赞支持!
121 0
不是吧?这么好用的开源标注工具,竟然还有人不知道…
|
4月前
|
人工智能 API C#
动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具
动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具
63 2
|
4月前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
120 0
|
4月前
|
开发者 C# 容器
【独家揭秘】当WPF邂逅DirectX:看这两个技术如何联手打造令人惊艳的高性能图形渲染体验,从环境搭建到代码实践,一步步教你成为图形编程高手
【8月更文挑战第31天】本文通过代码示例详细介绍了如何在WPF应用中集成DirectX以实现高性能图形渲染。首先创建WPF项目并使用SharpDX作为桥梁,然后在XAML中定义承载DirectX内容的容器。接着,通过C#代码初始化DirectX环境,设置渲染逻辑,并在WPF窗口中绘制图形。此方法适用于从简单2D到复杂3D场景的各种图形处理需求,为WPF开发者提供了高性能图形渲染的技术支持和实践指导。
269 0
|
5月前
|
算法 数据处理 开发者
LabVIEW开发为何仿制(致敬)经典成熟软件
LabVIEW开发为何仿制(致敬)经典成熟软件
35 2
|
6月前
|
人工智能 数据可视化 程序员
【推荐100个unity插件之7】使用BehaviorDesigner插件制作BOSS的AI行为树
【推荐100个unity插件之7】使用BehaviorDesigner插件制作BOSS的AI行为树
229 0
|
机器学习/深度学习 人工智能 算法
AI绘图工具能取代设计师吗
AI绘图工具能取代设计师吗
|
机器学习/深度学习 人工智能 算法
AI绘图工具能取代设计师吗?
AI绘图工具能取代设计师吗? 我们知道, AI技术是计算机科学的一个分支,它将人类的知识与智能结合起来。在最近一次 AI技术被讨论的时候,甚至有一些人提出了“人类是不是要失业”这样的问题。 然而,这个问题并没有那么简单。因为 AI技术可以帮助人类创造新的技能和知识,而这些技能和知识是人类独有的。因此,如果我们问这个问题:“AI绘图工具能取代设计师吗?
OFFICE技术讲座:双层字体引擎的提出
OFFICE技术讲座:双层字体引擎的提出
117 0