我用Btn = FindWindowEx(hParent, 0, "ThunderRT6CommandButton", "Exit")找Exit按钮的句柄(hParent已得到),得到的Btn为0。
但我用EnumChildWindows hParent, AddressOf EnumChildProc, 0,确可以遍历出这个按钮的句柄,而且用GetClassName和GetWindowText得到此按钮的描述也为"ThunderRT6CommandButton", "Exit",不知是什么原因FindWindowEx找不到它的句柄,是不是我的第二个参数不能给0啊?谢谢

解决方案 »

  1.   

    i = FindWindowEx(Me.hWnd, 0&, "ThunderCommandButton", "exit")
    MsgBox i & ":" & Command2.hWnd我试了一下可以找到啊,难道你的API定义不对?
      

  2.   

    如果用其它方法能得到Button,FindWindowEx肯定是能找到的,最好用SPY++之类的软件先把这个Button的逐层父窗口,有时Button放在Frame里了,就还要FindWindowEx好多次才能找到的
      

  3.   

    VB编的CatchObject程序也能查找窗口的
      

  4.   

    这个按钮是放在一个frame中,请教如何FindWindowEx好多次?
      

  5.   

    biqiang(边城浪子),我的按钮是放在ThunderRT6FormDC中的SSTabctlWndClass下ThunderRT6Frame中的,请问如何用FindWindowEx找到它?谢谢。
      

  6.   

    一层一层的找下去
    就是先找到ThunderRT6FormDC的句柄,然后作为hParent找到SSTabctlWndClass的句柄,再把SSTabctlWndClass的句柄作为hParent找到里面的ThunderRT6Frame句柄如此类推
      

  7.   

    FindWindowEx的第二个参数是从这个句柄之后查找。你可以把第一次得到的句柄作为这个参数
      

  8.   

    findwindowex
    比较麻烦
    呵呵
    你还需要对子窗体来遍历的
      

  9.   

    lsftest说得对,就是一层一层的找下去,不过要注意的是如果某一层有两个以上同类的窗口,除非你知道名字,否则只用类名查找时要注意区分是不是自己需要的那个,不是的话就要用FindWindowEx再次用同一个父窗口查找,第二个参数就如hpygzhx520如说的要用查找到的上一个窗口句柄(上一个同类的窗口)