1.用Win32 API函数h=GetWindow(Hwnd,GW_CHILD)
结合GetNextWindow(A,GW_HWNDNEXT)  //A位GetWindow()函数的返回值
2.不是所有的Window都有句柄(Handle)的.
具体语法请看WIN32联机帮助。

解决方案 »

  1.   

    sorry,写错了,我是说不是所有的控件都有窗口句柄的 
      

  2.   

    1.static control没有窗口句柄,应该是通过vb的方法吧?不太清楚
    2.getclassname可以获得窗口的类名
    3.findwindowex边历后可以获得所有的子窗口
    都是win32api 
      

  3.   

    HWND GetDlgItem(
      HWND hDlg,       // handle of dialog box
      int nIDDlgItem   // identifier of control
    );
     
      

  4.   

    用下面的函数创建枚举某一窗口子窗口听回调:
    BOOL EnumChildWindows(    HWND hWndParent, // handle to parent window
        WNDENUMPROC lpEnumFunc, // pointer to callback function
        LPARAM lParam  // application-defined value
       );
    可以在VB中写好函数后,用ADDRESSOF把这个函数指针传给ENUMCHILDWINDOWS中的LPENUMFUNC来实现。当然获得窗口的句柄后,再对这个窗口如何操作,就看需要了。
    比如:
    int GetClassName(    HWND hWnd, // handle of window
        LPTSTR lpClassName, // address of buffer for class name
        int nMaxCount  // size of buffer, in characters
       );
     DWORD SetClassLong(    HWND hWnd, // handle of window
        int nIndex, // index of value to change
        LONG dwNewLong  // new value
       );等等。