首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

小弟我做了个控件,目前可以移动,但移动后他原来的位置控件无法释放呀

2012-12-17 
我做了个控件,目前可以移动,但移动后他原来的位置控件无法释放呀我用如下移动的,但他原来的位置上画线不行

我做了个控件,目前可以移动,但移动后他原来的位置控件无法释放呀
我用如下移动的,但他原来的位置上画线不行呀, 就是如何释放其位置的问题

Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then

        '为当前的应用程序释放鼠标捕获
    ReleaseCapture
        '移动窗体

    SendMessage UserControl.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
 
    
    End If
End Sub
谢谢了
[解决办法]
不理解楼主的意思
什么叫他原来的位置上画线不行?
[解决办法]
就是把这个控件移动后,他原来的位置上我无法画线, 这个控件我用picture 控件当作容器,

我画线是用新增加一个Picture控件的方法当成画线的方法, 
 Set pic2 = Controls.Add("vb.picturebox", linestr, Picture_farther)
                                pic2.Width = Abs(fx - X)
                                pic2.Height = 50
                                pic2.BackColor = vbBlue 
                                     pic2.Top = fy
                                pic2.left = fx
就是说原来控件我已经挪开了,但在 他原来的位置我无法加新控件PICTURE
[解决办法]
就是我在自定义控件里加的移动代码后, 在主程序FORM中移动他后, 点击他原来的地方, 这地方不是FORM 的click 事件了,奇怪呀, 我的自己定义控件里要增加什么代码呀,急!!! 
[解决办法]

下边方法可以实现拖动, 但是我发现拖动后,他原来的位置(就是CTRL所在的picture 控件)不会相应picture_click 事件了, 怎么办呀!!!! 


Option Explicit
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Const WM_SYSCOMMAND = &H112&
Private Const SC_MOVE = &HF012&
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private 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 Any) As Long

Private Sub ctrl_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbLeftButton Then


        '为当前的应用程序释放鼠标捕获
        ReleaseCapture
        '移动窗体
        SendMessage ctrl.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
    End If
End Sub

热点排行