如果我开了两个同样的程序,当然窗口名字也一样,在程序中如果有findwindow函数的话,他返回的是他自己本身的窗口句柄还是另外一个呢???? 如果有几个怎么办?? 可以让它只找到除自己本身的其他句柄吗???~~

解决方案 »

  1.   

    BOOL EnumWindows(          WNDENUMPROC lpEnumFunc,
        LPARAM lParam
    );
      

  2.   

    如果有两个以上的同一类型同一窗口名称的窗口,那么findwindows会不会失败????
      

  3.   

    This method retrieves the top-level CWnd 
      

  4.   

    不会失败的,FindWindow获取最顶层窗口句柄。
      

  5.   

    没试过,不过两个窗口类相同,标题也相同的,用FindWindow找的话,确实不好区分
      

  6.   

    那比如我需要实现一个功能,在程序里找到除了自身窗口以外的相同类型窗体的句柄怎么用 EnumWindows实现呢???我获取窗口句柄之后,怎么查看此窗口句柄的窗口类型呢?
      

  7.   

    EnumWindows可以列举出所有的顶层窗口,每找到一个就会调用你自己写的 EnumWindowsProc回调函数,在这个函数中,用 GetWindowThreadProcessId得到创建窗口的线程ID,可以利用这个ID来判断是否是本进程的窗口.
      

  8.   

    findwindow只能获取主窗口的句柄,子窗口的话应该用findwindowex获取