正在阅读:窗体迁移大法窗体迁移大法

2004-02-14 09:34 出处:中国电脑教育报 作者:徐立伟 责任编辑:huangpeidan
有很多软件为了实现特殊的显示效果,采用非矩形的窗体,而这些窗体往往没有标题栏。想要移动一个没有标题栏的窗口是不那么容易的。下面我介绍两种在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设置中拖动窗体时,被拖动的窗体不会随窗体的移动而移动,随窗体移动的仅是一个与窗体形状、大小一样的虚框,只有释放鼠标后,窗体才会移动到释放鼠标时虚框的所在处。要实现这种效果,请看第二种方法。
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品