自定义OCX,当OCX拖放至窗体中时,在OCX内部代码里面,如何获取当前OCX在该FORM容器中的LEFT及TOP?获取后该如何改变?换句话说是:通过Form引发OCX内部中的一个方法,该方法改变OCX在容器FORM中的LEFT及TOP.该方法的代码该怎么实现?
急,请懂的朋友指点一下,谢谢!!

解决方案 »

  1.   

    就直接写
    定义两个变量 定义到form的resize中
    a=控件.left
    b=控件.top
      

  2.   

    我查到API函数,解决此问题:Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As LongPrivate Type POINTAPI
      X As Long
      Y As LongEnd TypePrivate Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End TypePrivate Type WINDOWPLACEMENT
      Length As Long
      flags As Long
      showCmd As Long
      ptMinPosition As POINTAPI
      ptMaxPosition As POINTAPI
      rcNormalPosition As RECT
    End Type
    '//********************
    Private Sub ReComputer()
      Dim objC As WINDOWPLACEMENT
       
      GetWindowPlacement UserControl.hwnd, objC  iTop = objC.rcNormalPosition.Top * 15
       
      iLeft = objC.rcNormalPosition.Left * 15
       
      Me.Top = iTop
      Me.Left = iLeft
    End Sub此时的iTop及iLeft即为需求值;