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渣美化图文】你的窗体有多扁?


上一篇:ML/DL之预测分析类:利用机器学习算法进行预测分析的简介、分析、代码实现之详细攻略


下一篇:Day06 阿里云ECS进阶七天实践营-钉钉案例