- 关 键 词:
- windows 98
有很多软件为了实现特殊的显示效果,采用非矩形的窗体,而这些窗体往往没有标题栏。想要移动一个没有标题栏的窗口是不那么容易的。下面我介绍两种在VB中采取不同原理的方法移动一个没有标题栏的窗口。
方法一
这种方法是在窗体的MouseDown、MouseUp和MouseMove等事件的处理过程中添加代码,实现在鼠标左键按下后移动时,改变窗体的Left和Top属性,实现移动无标题栏的窗体。
进入VB,把窗体Form1的BorderStyle属性设置为0-None(无标题栏),再窗体上添加一个ButtonCommand组件,用来关闭程序。代码如下:
Private Type POINT
X As Single
Y As Single
End Type
Dim FormP As POINT
'记录窗体原始位置
Dim MouseP As POINT
'记录鼠标按下时的位置
Dim MouseLButtonDown As Boolean
'记录鼠标左键是否按下
Private Sub Command1_Click()
End '退出程序
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
FormP.X = Form1.Left
'记下窗体原始坐标位置
FormP.Y = Form1.Top
MouseP.X = X
'记下鼠标按下时的位置
MouseP.Y = Y
If Button = 1 Then
MouseLButtonDown = True
'鼠标左键按下
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MouseLButtonDown Then
Form1.Left = FormP.X + (X - MouseP.X) '移动窗体
Form1.Top = FormP.Y + (Y - MouseP.Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseLButtonDown = False
'鼠标左键弹起
End Sub
上述方法不是很完善,制作出的窗体被拖动时,窗体会随鼠标的移动而移动。而在默认的Windows设置中拖动窗体时,被拖动的窗体不会随窗体的移动而移动,随窗体移动的仅是一个与窗体形状、大小一样的虚框,只有释放鼠标后,窗体才会移动到释放鼠标时虚框的所在处。要实现这种效果,请看第二种方法。 本文:http://www.qqread.com/vb/y620558010.html进入讨论组讨论。
方法一
这种方法是在窗体的MouseDown、MouseUp和MouseMove等事件的处理过程中添加代码,实现在鼠标左键按下后移动时,改变窗体的Left和Top属性,实现移动无标题栏的窗体。
进入VB,把窗体Form1的BorderStyle属性设置为0-None(无标题栏),再窗体上添加一个ButtonCommand组件,用来关闭程序。代码如下:
Private Type POINT
X As Single
Y As Single
End Type
Dim FormP As POINT
'记录窗体原始位置
Dim MouseP As POINT
'记录鼠标按下时的位置
Dim MouseLButtonDown As Boolean
'记录鼠标左键是否按下
Private Sub Command1_Click()
End '退出程序
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
FormP.X = Form1.Left
'记下窗体原始坐标位置
FormP.Y = Form1.Top
MouseP.X = X
'记下鼠标按下时的位置
MouseP.Y = Y
If Button = 1 Then
MouseLButtonDown = True
'鼠标左键按下
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MouseLButtonDown Then
Form1.Left = FormP.X + (X - MouseP.X) '移动窗体
Form1.Top = FormP.Y + (Y - MouseP.Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseLButtonDown = False
'鼠标左键弹起
End Sub
上述方法不是很完善,制作出的窗体被拖动时,窗体会随鼠标的移动而移动。而在默认的Windows设置中拖动窗体时,被拖动的窗体不会随窗体的移动而移动,随窗体移动的仅是一个与窗体形状、大小一样的虚框,只有释放鼠标后,窗体才会移动到释放鼠标时虚框的所在处。要实现这种效果,请看第二种方法。 本文:http://www.qqread.com/vb/y620558010.html进入讨论组讨论。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- VB+Access设计图书管理系统 (104238次浏览)
- VB设计有语音报时和报警功能的闹钟 (13528次浏览)
- 用VB制作一个简单的MP3播放器 (8172次浏览)
- DataGrid 控件的使用 (5010次浏览)
- 用VB编写记事本 (4443次浏览)
- IP地址与子网掩码(二) (4152次浏览)
- IP地址与子网掩码(三) (3708次浏览)
- 掌握VB中的ADO数据对象编程 (3504次浏览)
- 在VB下设计开发实时的数据采集曲线 (3403次浏览)
- VB中使用WinSock控件编写网络程序 (3400次浏览)



