获取一个程序 指定的子窗口或控件

用过spy++ 的应该都知道 , 一个程序的窗口, 都是一种树状结构 , 代码如下,如有错误, 还请指正

// 子窗口从1开始索引 ,最后添加0,代表查找结束 ,  如获取父窗口的 第二个子窗口下的 , 第三个子窗口 , 参数如下(f,2,3,0)HWND getSubWindow(HWND father, ...){

    int index = 1;
    va_list vl;
    HWND sub = NULL;

    va_start(vl,father);

    for( index = va_arg(vl, int) ;index != 0; index = va_arg(vl, int))
    {

        sub = GetWindow(father , GW_CHILD);
        for(int i =1 ;i<index;i++){
            sub = GetWindow(sub, GW_HWNDNEXT);
            if(sub == NULL) {               index = 0 ;break;       }

        }
        father = sub;

    }

    va_end(vl);

    return sub;

}
时间: 2024-11-05 05:43:14

获取一个程序 指定的子窗口或控件的相关文章

C#中父窗口和子窗口之间控件互操作实例

本文实例讲述了C#中父窗口和子窗口之间控件互操作的方法.分享给大家供大家参考.具体分析如下: 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: 代码如下: public static yourMainWindow pCurrentWin = null

[QT]在子窗口或者控件中绘图

要在子窗口中绘图,有2种方法: 1.重写子窗口的控件类(即继承该类,并重载其paintEvent()方法),实现其paintEvent()方法,然后在ui里面将原来的控件提升(promote to)为新类. (注:使用QPainter画图时,只能指定所属为当前类的引用Qpainter painter = new QPainter(this),所以应重写paintEvent()) 填写好新类的类名及头文件名. 2.使用事件过滤器,重写eventFilter(),在子窗口或控件中注册事件过滤器(in

jquery怎样获取一个元素下面相同子元素的个数

例如下面的html代码,要获取P元素下面a元素的个数: <p id="father"> <a></a> <a></a> <a></a> <a></a> <a></a> -- <a></a> </p> 我们可以这样写: $("#father a").length jquery怎样获取一个元素下面相同子元

获取一个类指定的属性值

/// <summary> /// 获取一个类指定的属性值 /// </summary> /// <param name="info">object对象</param> /// <param name="field">属性名称</param> /// <returns></returns> public static object GetPropertyValue(obj

【工具】获取窗口与控件信息

[工具]获取窗口与控件信息 常言道,工欲善其事,必先利其器.在脚本中常见的一种操作是操作窗口或控件,在操作之前,首先必须获取目标的各种信息,这时就要用上辅助工具了.本文会介绍一些获取窗口.控件信息的常用工具,这里的先后顺序是随意安排.如果目前用的没什么问题就继续用着,如果对某些地方不满意则可试试其他.简单的截图不容易全面反映整个工具的功能和特色,使用才能获得真实体验. Active Window Info 评论:这个最初来自于 AutoIt3 且安装包中自带的工具,就无需过多介绍了.功能简陋,但

C++windows内核编程笔记day09_day10,对话框和窗口基本控件等的使用

//设置字体颜色 SetTextColor(hdc,RGB(255,0,0)); //窗口背景 //wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); //wce.hbrBackground=CreateSolidBrush(RGB(0,0,255)); //设置字体背景 SetBkColor(hdc,RGB(0,0,200)); //设置字体背景模式 SetBkMode(hdc,TRANSPARENT);//字体背景透明 //创建字体,成功返回字体,失败返回

窗口和控件闪烁解决方案

对于MFC程序员来说做UI开发是痛苦的事情,不过大多数情况下我们都需要做这件事情,因为MFC自带的控件实在是太简陋了.这时候我们多半会涉及到自绘控件,随之而来的很可能就是窗口和控件的闪烁问题.这篇文章希望对MFC的窗口和控件闪烁问题做一个尽量全面的总结. 一.闪烁的原因 引起闪烁的原因很多,以至于网上有n多种解决闪烁问题的方法:如果你按照某一种方法做了仍然没有解决你的问题,请不要认定这个方法有问题,而是你没有对上号.如果你对这个解释不满意的话,我们就来深究一下到底是什么引起了闪烁.从原理上讲,闪

Xceed Docking Windows for .NET窗口分组控件下载及详细介绍

Xceed Docking Windows for .NET是一款窗口停靠和浮动.窗口自动隐藏.窗口分组控件,具有完美的外观,支持MDI应用程序以及tabbed-MDI,可以保存和加载窗口布局,可以包含任何.NET控件. 具体功能: 平稳的窗口自动隐藏功能 支持Visual Studio 窗口停靠界面 支持停靠一个窗口到浮动窗口,不仅是主窗口 停靠窗口根据主窗口自动调整大小 支持为Tabs设置图标 支持设置窗口显示和隐藏速度 创建任何数量的窗口分组以及水平和垂直tabbed 支持设置自动隐藏Ta

【WPF】总结窗口和控件拖拽的实现

前文 本文只对笔者学习掌握的一般的拖动问题的实现方法进行整理和讨论,包括窗口.控件等内容的拖动. 希望本文能对一些寻找此问题的解决方法的人和一些刚入门的人一些帮助.笔者为WPF初学者,能得到各位的批评指正也是荣幸万分.有更好更多的方法,劳烦与我分享,不胜感激. 本文的各种实现方法其他博客中也都有提及,很多文章内容详实,有图有代码,笔者就不重复造轮子了.就写写自己的一些理解吧. 关键词 Window, UserControls, drag, Thumb 参考资料 http://www.cnblog