如何获得其他应用程序里面的IMAGELIST的句柄呢,按道理和看IMAGELIST_CRATEE这个API的解释,IMAGELIST是有句柄,但如何才能获取呢?无论是VC或VB都没有所谓,最主要就是能成功获取,谢谢

解决方案 »

  1.   

    【VB声明】
      Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long【别名】
      FindWindowExA【说明】
      在窗口列表中寻找与指定条件相符的第一个子窗口 【返回值】
      Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError 【参数表】
      hWnd1 ----------  Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)  hWnd2 ----------  Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索  lpsz1 ----------  String,欲搜索的类名。零表示忽略  lpsz2 ----------  String,欲搜索的窗口名。零表示忽略
      

  2.   

    我试过了,其他的控件都找到了,但惟独是IMAGELIST找不到,难道真的没有办法吗
      

  3.   

    是啊,我是这样的,窗口里面有一个BUTTON,一个TEXTBOX和一个IMAGELIST,然后这样 写
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Sub Form_Click()
    Dim Handle As Long
    Dim Handle2 As Long
    Dim Handle3 As Long
    Handle = FindWindow(vbNullString, "a")//a是FORM1的CAPTION
    Handle2 = 1
      Do While Handle2 <> 0
        Handle2 = FindWindowEx(Handle, Handle3, vbNullString, vbNullString)
            Handle3 = Handle2
            Debug.Print Handle2
      Loop
    End Sub
      

  4.   

    呵呵,看了看msdn,IMAGELIST_CREATE返回的是hImageList对象的句柄,IMAGELIST控件没有句柄