当前位置: 首页 > news >正文

vc-api-枚举所有子窗口实例

我经常想枚举一个父窗口的所有子窗口,网上搜索了很多都没有搞的太懂,经过多次实践,总算搞明白了,发一个最简单的实例,希望能给大家带来帮助

实例:枚举QQ登陆这个窗口所有的子窗口

#include <windows.h>
#include <stdio.h>
BOOL CALLBACK EnumChildProc(HWND,LPARAM);//回调函数原型
int num;
static HWND hwnd_find;//用于记录父窗口
int main()
{
hwnd_find=FindWindow(NULL,"QQ用户登录");//寻找游戏窗口
if(!hwnd_find)
MessageBox(hwnd_find,"未发现QQ登陆窗口,请确认","Error",MB_OK);//如果没有找到出现没有找到的提示信息
else
EnumChildWindows(hwnd_find,(WNDENUMPROC)EnumChildProc,(LPARAM)NULL); 
//此处的上一句是重点 (WNDENUMPROC)EnumChildProc可以理解成是一个函数地址,只要还有子窗口
//它就会调用这个函数,也就是下面的回调函数 
   return 0;
}
BOOL   CALLBACK   EnumChildProc(HWND hwnd,LPARAM lParam)
{
if   (hwnd) //如果子窗口存在 
{ 
num++;//记录窗口数目的num自增
char   chText[MAX_PATH];//用来储存窗口的Text   
ZeroMemory(chText,MAX_PATH); // ZeroMemory宏用0来填充一块内存区域 
GetWindowText(hwnd,chText,MAX_PATH);//获取窗口的标题
if(chText[0])//如果窗口标题非空的话
{
   sprintf(chText,"找到标题为: %s   的窗口一个,共计%d个窗口",chText,num);
   //格式化chText
MessageBox(hwnd,chText,"找到子窗口",MB_OK);//提示信息 
}
else
{
   sprintf(chText,"找到标题为空的窗口一个,共计%d个窗口",num);
   //格式化chText
MessageBox(hwnd,chText,"找到子窗口",MB_OK);//提示信息
}
return   TRUE;   
}   
return   FALSE;
}

转载于:https://www.cnblogs.com/rogee/archive/2011/02/15/1954938.html

相关文章:

  • VC 获取鼠标下面的窗口
  • [SE]软件项目需求分析为什么困难
  • JS求一个字符串的长度
  • JS中的prototype
  • html5 Canvas 如何自适应屏幕大小
  • 手机web——自适应网页设计(html/css控制)
  • @media screen 针对不同移动设备
  • 网站页面性能优化的34条黄金守则
  • IE和Firefox的Javascript兼容性总结
  • HTML本地存储之IndexedDB(1)
  • 关于Web Worker的一些心得
  • 关于Web Worker的一些心得(二)
  • displaynone与visiblehidden的区别
  • html5横、竖屏状态 以及禁止横屏
  • Ext3.2转Ext4要点
  • dva中组件的懒加载
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java第三方包学习之lombok
  • leetcode98. Validate Binary Search Tree
  • PHP 的 SAPI 是个什么东西
  • Python语法速览与机器学习开发环境搭建
  • SegmentFault 2015 Top Rank
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vuex 学习笔记 01
  • 对象引论
  • 目录与文件属性:编写ls
  • 入手阿里云新服务器的部署NODE
  • 什么软件可以提取视频中的音频制作成手机铃声
  • raise 与 raise ... from 的区别
  • 带你开发类似Pokemon Go的AR游戏
  • 数据库巡检项
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $jQuery 重写Alert样式方法
  • (30)数组元素和与数字和的绝对差
  • (python)数据结构---字典
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ZT)一个美国文科博士的YardLife
  • (阿里云万网)-域名注册购买实名流程
  • (笔试题)分解质因式
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (强烈推荐)移动端音视频从零到上手(上)
  • (五)MySQL的备份及恢复
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 反射的使用
  • .Net7 环境安装配置
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET连接数据库方式
  • .NET正则基础之——正则委托
  • @GlobalLock注解作用与原理解析
  • [100天算法】-目标和(day 79)
  • [C++]类和对象【上篇】
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!