如何能直接通过控件或子窗口的某种属性来获得子窗口的句柄呢?
(不使用枚举)

解决方案 »

  1.   

    我不知道子窗口的任何信息,与其他控件不同的在于它是一个有用户界面的窗口,它的Title也是不定的。如何能获得它的句柄呢?
    谢谢!!
      

  2.   

    那么就是枚举,也不能定位这个窗口了,
    有没有这样的判断
      if (是窗口)
         ...
      else if (是列表)
         ...
    ????
      

  3.   

    是判断控件类型吗?
    -------
    char *buf=new char[512];
    ::GetClassName(pwnd->GetSafeHwnd(),buf,512);
    //得到控件是什么类型的,pwnd就是控件的句柄
    CString str=buf;   
    str.TrimRight();           
    if(str=="Edit")//如果EDIT类型
      

  4.   

    是否是窗口,可以用::IsWindow来判断。
    系统有一个函数,WindowFromPoint,可以获得指定位置的窗口,坐标基于全屏。注意一点,这个函数取得父窗口的句柄,但是她有个姊妹函数,叫什么名忘了,查查MSDN,我在网吧
      

  5.   

    to  宁静雪
       不知道ID,只知道我的程序中嵌入了另一个程序(父子关系),现在想恢复他们各自的身份(脱离父子关系  ^_^)。我现在无法验证大家的说法,我会尽快试验。
    请继续发表个人的见解。
      

  6.   

    不行。
    IsWindow不能与其他控件区别,不管是什么只要它有句柄就是一个窗口。
    还有其他方法吗?
      

  7.   

    用FindWindow取父窗口句柄,然后用FindWindowEx去子窗口句柄。
      

  8.   

    用FindWindow取父窗口句柄,然后用FindWindowEx去子窗口句柄。
    这个不也用的是枚举???
      

  9.   

    我详细讲一下原由:程序A和B
    1、先用SetParent将A嵌入到B中执行,(通过程序C实现)
    2、现在希望恢复A的独立身份。(我可以通过程序C实现,但是我希望能在B完成这个功能)就是这样。A可以是任何一个运行程序
    我想可以通过C给B传递有关A的信息,如Title等。
    如果不考虑C,只在B中就不能实现了吗????