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


相关文章
|
8月前
如何实现更改窗体标题栏的样式
如何实现更改窗体标题栏的样式
65 0
Qt隐藏系统标题栏,使用自定义标题栏
Qt隐藏系统标题栏,使用自定义标题栏
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
183 0
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
|
程序员 C语言
Qt编写自定义控件48-面板窗体控件
一、前言 很多时候需要有一个控件,能够替代容器控件,自动容纳多个widget,自适应宽高,然后提供滚动条功能,这就必然需要用到QScrollArea控件,可设置各个子面板的间距等,也在很多系统中用到,比如温湿度设备面板,有几百个温湿度设备,需要一个容器放置,自动产生滚动条,可以设置面板的固定宽高或者自适应拉伸,其实就是放了表格布局+弹簧来设置。
1286 0
|
程序员 开发工具 C语言
Qt编写自定义控件47-面板区域控件
一、前言 在很多web网页上,经常可以看到一个设备对应一个面板,或者某种同等类型的信息全部放在一个面板上,该面板还可以拖来拖去的,这个控件首次用在智能访客管理平台中,比如身份证信息一个面板,访客信息一个面板,被访人信息一个面板,这样相当于分类展示了,还提供了对应的标题栏有文字显示,这个控件的使用场景也是非常多,还有个子标题可以设置,拓展了报警闪烁的接口。
1256 0
Qt编写自定义控件27-颜色按钮面板
一、前言 颜色按钮面板主要用在提供一个颜色按钮面板,用户单击某个按钮,然后拿到对应的颜色值,用户可以预先设定常用的颜色集合,传入到控件中,自动生成面板颜色集合按钮,每当滑过按钮的时候,按钮边缘高亮提示当前所在颜色的按钮,当选中某个按钮时,右侧颜色条显示当前选中的颜色,此控件功能极其简单,直接采用动态生成按钮的方式,设置按钮的样式表来设置对应的颜色和高亮边框等,单击按钮发出颜色改变信号即可,对外提供该信号就行,非常适合初学者学习。
1086 0
Qt编写自定义控件28-颜色滑块面板
一、前言 相比于上一个颜色按钮面板,此控件就要难很多,颜色值有三种表示形式,除了程序员最常用的RGB以外,还有HSB和CMY方式。RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
970 0
|
开发工具 C语言
Qt编写自定义控件9-导航按钮控件
一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。
1281 0
|
开发工具 C语言 索引
Qt编写自定义控件8-动画按钮组控件
一、前言 动画按钮组控件可以用来当做各种漂亮的导航条用,既可以设置成顶部底部+左侧右侧,还自带精美的滑动效果,还可以设置悬停滑动等各种颜色,原创作者雨田哥(QQ:3246214072),驰骋Qt控件界多年,雨田哥是我见过的在这块水平相当牛逼的,在我之上,想要什么效果都可以搞出来,大家也可以找他定制...
1322 0