VB编程:无标题栏窗体移动和自定义鼠标样式

简介: VB编程:无标题栏窗体移动和自定义鼠标样式

实现无边框效果:

窗体BorderStyle=0-None

图片框的BorderStyle=0-None


代码开始:

'---------实现移动无标题栏窗体API调用声明--------------------

Const HTCAPTION = 2

Const WM_NCLBUTTONDOWN = &HA1

Private Declare Function ReleaseCapture Lib "user32" () As Long

                        'ReleaseCapture释放鼠标捕获

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

                        'SendMessage向窗体传递消息

'-----------------------------------------------------------------


Private Sub Form_Load()

Picture1.MousePointer = 99    '设置鼠标样式为用户自定义

Picture1.MouseIcon = LoadPicture(App.Path & "\pen.ico")   '鼠标图标的路径

End Sub


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

   If Button = 1 Then                '如果按下鼠标左键

       Dim ReturnVal As Long         '定义一个整型变量

       X = ReleaseCapture()          '释放鼠标捕获

       ReturnVal = SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)

                                     '向窗体传递消息,实现窗体移动

   End If

End Sub


Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Picture1.Print

Picture1.Print

Picture1.Font = "华文行楷"

Picture1.FontSize = 20

Picture1.Print "               一封家书"

Picture1.Font = "宋体"

Picture1.FontSize = 10

Picture1.FontBold = False

Picture1.Print

Picture1.Print "                           独进青楼"

Picture1.Print

Picture1.Font = "华文行楷"

Picture1.FontSize = 16

Picture1.Print "                  情爱的xxx"

Picture1.Print

Picture1.Print "                  现在工作很忙吧?"

Picture1.Print

Picture1.Print "                  身体好吗?"

Picture1.Print

End Sub


关键说明:

1、开头那段代码看不懂?其实很简单,这个是API阅览器复制出来的,安装过vb6.0的电脑,可以右键打开VB6.0的安装位置,按如下路径查找就行:

Microsoft Visual Studio\COMMON\Tools\Winapi\APILOAD.EXE

打开之后依次点击:文件--》加载文本文件--》找到刚刚打开的路径文件夹Winapi,选中WIN32API.TXT,打开。

键入搜索:“ReleaseCapture”复制选定项里边的内容放到开头就可以了。(备注,此处需要删除里边的:Alias "ReleaseCapture",我百度过,知道上做出如下解释:一般的“第三方DLL文件”,都不会给你提供A版和W版的函数接口)

别忘了还有“SendMessage”这个可以直接复制过来用,不用做任何更改。

最开头的两句是Const函数定义的常量,为什么定义为这个数值,暂时没搞懂,如果有人懂,请留言指教,不胜感激。




2、Form_Load()这个过程其实可以省略,在Picture1属性中找到两个属性,设为相应的值即可。


     能阅读到这里你很棒了,为了让有幸来访的朋友容易研究这个效果,我把我做的程序打包上传至百度云,不知道会不会挂,挂了可以在博客下方留言,我发你邮箱。


链接:http://pan.baidu.com/s/1pLrTKWb 密码:1trm


之前在百度贴吧发现一个不错的帖子,是关于UI设计类的,可以一起参考一下:

原文链接:【UI渣美化图文】你的窗体有多扁?


相关文章
|
Java
Mac下安装JDK11(国内镜像)
Mac下安装JDK11(国内镜像)
7999 0
|
数据挖掘 Python
如何使用Python的SciPy库进行统计分析?
【2月更文挑战第27天】【2月更文挑战第100篇】如何使用Python的SciPy库进行统计分析?
318 0
|
机器学习/深度学习 算法 机器人
多代理强化学习综述:原理、算法与挑战
多代理强化学习是强化学习的一个子领域,专注于研究在共享环境中共存的多个学习代理的行为。每个代理都受其个体奖励驱动,采取行动以推进自身利益;在某些环境中,这些利益可能与其他代理的利益相冲突,从而产生复杂的群体动态。
807 5
(7)Qt中的自定义槽(函数)
这篇文章介绍了在Qt中如何定义和使用自定义槽函数,包括类成员函数、静态类成员函数、全局函数和lambda表达式作为槽函数的示例,以及使用lambda表达式时的注意事项。
512 2
(7)Qt中的自定义槽(函数)
|
Serverless Python
如何根据身份证号码计算年龄-python
如何根据身份证号码计算年龄-python
688 3
|
人工智能 供应链 云栖大会
做好全域消费者数智化营销 太古可口可乐念好数字化的“经”
做好全域消费者数智化营销 太古可口可乐念好数字化的“经”
344 0
做好全域消费者数智化营销 太古可口可乐念好数字化的“经”
|
数据可视化 程序员 Linux
小白安装labelimg常见问题及其原因(带知识点理解)
小白安装labelimg常见问题及其原因(带知识点理解)
|
安全 数据安全/隐私保护
一些常见的ip代理协议的类型有哪些?以及它们的特点?
代理服务器作为客户端和目标服务器间的中介,遵循HTTP、HTTPS、SOCKS5等协议。HTTP协议简单直接,HTTPS提供加密和身份验证,而SOCKS5更底层,采用二进制请求,提供更强的安全性。在性能和安全优先的情况下,SOCKS5是首选。
|
数据库 数据安全/隐私保护 数据库管理
基于SpringBoot+Vue企业oa管理系统(源码+部署说明+演示视频+源码介绍)(2)
基于SpringBoot+Vue企业oa管理系统(源码+部署说明+演示视频+源码介绍)
439 0
|
机器学习/深度学习 程序员 TensorFlow
GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包
过年回家的车票抢到了吗?春运一直以来都以难抢票著称,很多人开始通过各种软件和途径,希望能够完成购票大计。按照程序员一向“懒”的做事风格,必然是不愿意自己亲手去做的,直接写一段程序岂不是省时省力?今天分享GitHub标星两万的"抢票神器”。
11153 0
GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包

热门文章

最新文章