现在有一窗口,内有若干控件,我想用过另外一个程序查到到此窗口(已用FindWindow找到,得到句柄),然后在窗口中寻找指定控件~~~不知道该怎么写~~~?望指教

解决方案 »

  1.   

    BOOL EnumChildWindows(
      HWND hWndParent,         // handle to parent window
      WNDENUMPROC lpEnumFunc,  // callback function
      LPARAM lParam            // application-defined value
    );
      

  2.   

    用下面这个函数来实现
    BOOL EnumChildWindows(
      HWND hWndParent,         // 父窗口的句柄
      WNDENUMPROC lpEnumFunc,  // 回调函数
      LPARAM lParam            // ID
    );
    上个函数中的第二个参数是一个回调函数的指针,回调函数原形如下
    BOOL CALLBACK EnumChildProc(
      HWND hwnd,      // handle to child window
      LPARAM lParam   // application-defined value
    );
    具体例子参考MSDN;
      

  3.   

    你通过FindWindow得到了当前窗口的句柄我想你应该用GetWindow()函数
    HWND GetWindow(
      HWND hWnd,  // handle to original window
      UINT uCmd   // relationship flag
    );
    uCmd的参数为
    GW_CHILD   
    GW_HWNDFIRST 
    GW_HWNDLAST 
    GW_HWNDNEXT 
    GW_HWNDPREV   
    GW_OWNER  
    通过这个函数来得到控件的句柄,因为qq登陆对话框就是通过这个函数来得到qq的用户名与密码的
    //打MSDN看看就明白了HWND hCurWindow HC, HE;
    //hCurWindow为当前登陆窗口的句柄,HC 为号码框, HE为密码框
    hCurWindow = FindWindow(NULL, "QQ用户登陆")然后
    HC = GetWindow(hCurWindow,GW_CHILD);//就得到了号码框的句柄
    HE = GetWindow(HC, GW_HWNDNEXT);//就得到了密码框的句柄你试试吧,我想有一定的可行性的
      

  4.   

    你可以先用PE工具找到ID,再用GetDlgItem(ID_*******)