回调函数里不是有childwindow的句柄么?
http://topic.csdn.net/u/20110831/16/c6fe7ccb-0be0-4244-8945-86dc0baa268d.html

解决方案 »

  1.   

    foreeach(contrl ctl in frm.contrls)
      

  2.   

    http://blog.csdn.net/wangyong0921/article/details/6693917这个肯定可以解决
      

  3.   


    我看了一下  问题是 我现在是通过钩子知道的窗体句柄 也就是说 我完全不知道任何关于那个程序的所有代码 信息  这个方法还是不行额  我想还是通过API实现的方法  如果能知道那些东西就不需要这么麻烦了 
      

  4.   

    关于EnumCHildWindows可以参考这个:
    http://qianglc.blog.163.com/blog/static/10306850320097111045667/
      

  5.   

    试试?        /// <summary>
            /// 该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
            /// </summary>
            /// <param name="hwndParent">要查找子窗口的父窗口句柄,如果hwnjParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口</param>
            /// <param name="hwndChildAfter">子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。</param>
            /// <param name="lpClassName">指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针</param>
            /// <param name="lpWindowName">指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配</param>
            /// <returns></returns>
            [DllImport("user32.dll")]
            public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
      

  6.   

    foreach(control ctrl in Form1.controls)
    然后 GetType(ctrl) 得到类型,
    ctrl.handle 得到句柄,
    我就是这样用的,完全可行,只是效率不高而已。
    (你要是遍历,就再递归找 control.controls)
      

  7.   

    控件的句柄会作为回调函数的参数传进去属性,只有用API获取。主要使用SendMessage,因为SDK中程序和控件的交互基本都是通过windows消息实现的。
    没有办法简单地获得一个控件的“所有属性值”,只能一个个按需读取。