FindWindowEx函数,看看msdn就可以了

解决方案 »

  1.   

    一个演示: char* FindIEURL()
     {    HWND hWorker,hRebar,hComEx,hcom,hEdit;    HWND hwndParent=::FindWindow("IEFrame",NULL);
        //找到最近的IE.    if(hwndParent == NULL)//没有IE运行
            return NULL;    char szURL[260];     hWorker=::FindWindowEx(hwndParent,0,"WorkerA",NULL);//找到工作区    if(hWorker == NULL)//用户用NT
           hWorker=::FindWindowEx(hwndParent,0,"WorkerW",NULL);//WindowNT中的ie    hRebar=::FindWindowEx(hWorker,0,"ReBarWindow32",NULL);//找到Rebar    hComEx=::FindWindowEx(hRebar,0,"ComboBoxEx32",NULL);//找到Comboboxex    hcom=::FindWindowEx(hComEx,0,"ComboBox",NULL);//找到combobox    hEdit=::FindWindowEx(hcom,0,"Edit",NULL);//找到ComBoBox的edit控件句柄     //如果使用::SendMessage(hEdit,WM_GETTEXT,260,(LPARAM) szURL);   
        //将无法获得未浏览的IE地址栏的输入,还有其他一些问题..
                  
        DWORD result;
        ::SendMessageTimeout(hEdit,
    WM_GETTEXT,
    260,
    szURL,
    0,
    1000,
    &result);    return szURL;
    }
      

  2.   

    GetWindow(GW_CHILD,
    查msdn吧,
      

  3.   

    还是帖出来吧HWND hWndChild = ::GetWindow(pWnd->m_hWnd, GW_CHILD);   
       if (hWndChild != NULL)
       {
        for (; hWndChild != NULL;
    hWndChild = ::GetNextWindow(hWndChild, GW_HWNDNEXT))
    {                    
              CWnd *pChild=CWnd::FromHandle(hWndChild);
      CString strClass;
              ::GetClassName(hWndChild,strClass.GetBufferSetLength(256),256);
              strClass.ReleaseBuffer();
      if(strClass.CompareNoCase("Edit")==0)
      {
         //edit
      else
      {
                          //other
      }
    }
       }      
      

  4.   

    也可以用EnumChildWindows,遍厉所有的子窗口