Vb中一个控件在编辑的时候可以随便移动位置,改变大小
我想在我的程序运行的时候 也让一个控件通过鼠标拖动,改变大小,位置等功能怎么实现?

解决方案 »

  1.   

    Dim a!, x1!, y1!Private Sub Frame1_MouseDown(frame As Integer, Shift As Integer, X As Single, Y As Single)
        x1 = X
        y1 = Y
        a = 1
    End Sub
    Private Sub Frame1_MouseMove(frame As Integer, Shift As Integer, X As Single, Y As Single)
        If a = 1 Then
            Frame1.Left = (X - x1) + Frame1.Left
            Frame1.Top = (Y - y1) + Frame1.Top
        End If
    End Sub
    Private Sub Frame1_MouseUp(frame As Integer, Shift As Integer, X As Single, Y As Single)
        a = 0
    End Sub
      

  2.   

    加个splitter 控件,分割好,加如要改尺寸的控件。
    调整splitter时,修改控件的大小。
      

  3.   

    拖动控件的代码:
    Option ExplicitPrivate Declare Function ReleaseCapture Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Const HTCAPTION = 2
    Const WM_NCLBUTTONDOWN = &HA1Private Sub Command1_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(Command1.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
        End If
    End SubPrivate 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(Picture1.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
        End If
    End Sub
      

  4.   

    http://www.play78.com/blog/blogview.asp?logid=49在运行时对窗体控件的大小进行编辑,象vb设计环境一样//
    楼主可以结帖了