有一个窗体,已知道其类名,我想用编程的方法获取它上面一切控件的类型和句柄,要怎样做,请给详细代码,谢谢

解决方案 »

  1.   

    详细代码没有。
    可以用EnumWindow来实现。
      

  2.   

    Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
        Dim sSave As String, Ret As Long
        Ret = GetWindowTextLength(hwnd)
        sSave = Space(Ret)
        GetWindowText hwnd, sSave, Ret + 1
        Form1.Print Str$(hwnd) + " " + sSave
        'continue enumeration
        EnumWindowsProc = True
    End FunctionPrivate Sub Form_Load()
        Me.AutoRedraw = True    EnumWindows AddressOf EnumWindowsProc, 0&
    End Sub
      

  3.   

    suntt,给点说明呀,比如那窗体的类名叫ABC,怎样做
      

  4.   

    补充,获得窗体的类名用GetClassName函数。如果遍历一个指定窗口的子窗口,应该用EnumChildWindows函数。