我用FindWindowEx()找窗口,
但窗口中有两个ComboBox都是没有名字的FindWindowEx只能找到第一个,请问怎样才能找到第二个ComboBox的HWND

解决方案 »

  1.   

    不知道另一个解决方案(比较麻烦)
    找到 ComboBox 的父窗口
    用 EnumChildWindows 枚举其子窗口此时可以根据子窗口的位置判断是否是你想得到的。
      

  2.   

    CWnd* cWnd = GetDlgItem(IDC_COMBO2);
    HWND hWnd = cWnd->GetSafeHwnd();
      

  3.   

    此时可以根据子窗口的位置判断是否是你想得到的。---------------------------------------------------忘了,可以根据控件的 ID BOOL CALLBACK EnumChildProcQuery(
      HWND hwnd,      // handle to child window
      LPARAM lParam   // application-defined value
    )
    { CWnd *p = CWnd::FromHandle( hwnd ) ; ASSERT(p) ; 

    int id = p->GetDlgCtrlID() ; 
    switch( id ) 
    {
         //  }
    return TRUE ; 
    }
      

  4.   

    设置他们的tab顺序,
    findwindowex(对话框句柄,得到的第一个combox句柄,类名,NULL);
    findwindowex可以查找与第二个参数后一个对象
      

  5.   

    hehe,进程外查找 用findwindowex不错 
    进程内,还是从 窗口ID查 比较好
      

  6.   

    还可以findwindow
    getnextwindow