Quantcast
Channel: VBForums - CodeBank - Visual Basic 6 and earlier
Viewing all articles
Browse latest Browse all 1529

vb6 UserControl GetContainer,Container Hwnd,Container Control Name

$
0
0
Code:

Private Sub UserControl_Show()
    On Error Resume Next
    Dim ParentControl As Object, ParentControlName As String
    'Set ParentControl = GetContainer(Parent.hWnd, ContainerHwnd, ParentControlName)
    Set ParentControl = UserControl.Parent.GetContainerOnForm(UserControl.ContainerHwnd, ParentControlName)
    Label1.Caption = "UserControl-ContainerHwnd:" & ContainerHwnd & vbCrLf & ",ControlName:" & ParentControlName & ",TypeName:" & TypeName(ParentControl)

End Sub


Code:

Public Function GetContainerOnForm(ByVal ContainerHwnd As Long, Optional BackControlName As String) As Object
'Get Usercontrol Container on form1
On Error Resume Next
Dim ctl As Object
Dim ControlHwnd As Long
If ContainerHwnd = Me.hWnd Then
    Set GetContainerOnForm = Me
    BackControlName = Me.Name
    Exit Function
End If
For Each ctl In Me.Controls
    ControlHwnd = 0
    ControlHwnd = ctl.hWnd
    If ControlHwnd = ContainerHwnd Then
        Set GetContainerOnForm = ctl
        BackControlName = ctl.Name
        Exit For
    End If
Next
End Function


Code:

Public Function GetContainer(FormHwnd As Long, ByVal ContainerHwnd As Long, Optional BackControlName As String) As Object
'模块中取自定义控件的父对象(可能是窗体或其他容器控件,Picture1,Frame1等)
'Parent object in a module taken from a defined control (possibly a form or other container control, Picture1,Frame1, etc.)
On Error Resume Next
Dim Frm As Form
For Each Frm In Forms
    If Frm.hWnd = FormHwnd Then
        Exit For
    End If
Next
Dim ctl As Object
Dim ControlHwnd As Long
If ContainerHwnd = Frm.hWnd Then
    Set GetContainer = Frm
    BackControlName = Frm.Name
    Exit Function
End If
For Each ctl In Frm.Controls
    ControlHwnd = 0
    ControlHwnd = ctl.hWnd
    If ControlHwnd = ContainerHwnd Then
        Set GetContainer = ctl
        BackControlName = ctl.Name
        Exit For
    End If
Next
End Function


Viewing all articles
Browse latest Browse all 1529

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>