当前位置:首页 » 程序代码 » 正文

用VB做一个输入法:移动无标题栏窗体 VB源代码

一个输入法,一般来说,是没有标题栏的,那么我们可以通过鼠标按下窗体其它空白处,或按下窗口上的某个控件来移动窗体。现在通过VB来移动一个无标题栏窗体。
原理是:通过计算计算鼠标移动后的位置,来计算窗体应该到达什么新的位置,并重新设置窗体的新位置来达到移动无标题栏窗口的目的。

很简单,没有多少源代码,先在窗体模块写入代码
Dim MoveScreen As Boolean’这个布尔型变量业决定是否可以移动窗体
Dim MousX As Integer'计录鼠标X位置
Dim MousY As Integer'计录鼠标Y位置
Dim CurrX As Integer'计录窗体X位置
Dim CurrY As Integer'计录窗体Y位置

然后,在窗体上画一个标签,在标签的MouseDown,MouseMove,MouseUp事件中写入下面的源码。

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    '如果是鼠标左键按下
    If Button = 1 Then
        '标示为移动状态
        MoveScreen = True
        '得到鼠标在窗体上的位置(相对与窗体内部坐标)
        MousX = X
        MousY = Y
    End If
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    '如果处于鼠标左键按下的状态,即MoveScreen = True时
    If MoveScreen=True Then
        '计算新的窗体坐标值
        '仔细想一下,看看是不是这样
        CurrX = Form1.Left - MousX + X
        CurrY = Form1.Top - MousY + Y
        '移动窗体到新的位置
        Form1.Move CurrX, CurrY
    End If
End Sub

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    MoveScreen = False
End Sub

说明:
当鼠标左键在标签上按下,MoveScreen = True 说明可以移动窗体,并记下鼠标当时的位置
当鼠标在按下时并拖动,计算窗体的应该移动的坐标位置,并通过move方法移动到相应的位置
当鼠标左键在标签下抬起  MoveScreen = False 说明窗体移动中止。

编译并运行,用鼠标拖动标签1就可以移动这个窗体,是管它是不是有标题栏,都可以移动。

-----------------------
其实,你也可以把标签1的MouseDown,MouseMove,MouseUp事件代码写到窗体的MouseDown,MouseMove,MouseUp事件代码中去,这样,你就可以不用借标签1,而直接拖动窗体的来移动无标题栏的窗口了。

打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:https://wb98.com/post/19.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号