• MFC 记录 遍历窗口


        加深记忆------

      经常用到这些,做个记录!

    这里列出两种遍历方式...

    用到的函数原型:

     1 HWND GetWindow(
     2   HWND hWnd,  // handle to original window
     3   UINT uCmd   // relationship flag
     4 );
     5 
     6 HWND GetDeskTopWindow(VOID)
     7 
     8 int GetWindowText(
     9   HWND hWnd,        // handle to window or control with text
    10   LPTSTR lpString,  // address of buffer for text
    11   int nMaxCount     // maximum number of characters to copy
    12 );
    13 
    14 //----代码
    15 TCHAR chTitleText[MAX_PATH]={0}; //用来保存窗口标题
    16 //在Windows下,所有窗口都为Windows的子窗口.
    17 HWND nHwnd=::GetWindow(GetDeskTopWindow,GW_CHILD);
    18 
    19 //循环遍历出来
    20 while(nHwnd!=NULL)
    21 {
    22     //获取窗口标题并且保存在数组里
    23     ::GetWindowText(nHwnd,chTitleText,MAX_PATH);
    24     //判断标题是否大于0,大于则输出
    25     if(_tcslen(chTitleText)>0) MessageBox(chTitleText);
    26     //继续下一次遍历
    27     nHwnd = ::GetWindow(nHwnd,GW_HWNDNEXT);  
    28 }

    方式2,使用FindWindow

    使用到的函数原型:

     1 //使用到的参数原型
     2 HWND FindWindow(
     3   LPCTSTR lpClassName,  // 类名
     4   LPCTSTR lpWindowName  // 标题名
     5 );
     6 HWND FindWindowEx(
     7   HWND hwndParent,      // 父窗口句柄
     8   HWND hwndChildAfter,  // 子窗口句柄
     9   LPCTSTR lpszClass,    // 类名
    10   LPCTSTR lpszWindow    // 标题名
    11 );
    12 
    13 int GetWindowText(
    14   HWND hWnd,        // 要获取标题的窗口句柄
    15   LPTSTR lpString,  // 获取标题后存放的变量
    16   int nMaxCount     // 获取的长度
    17 );
    18 #define g_ClassNme "D3D Window"    //窗口类名
    19 TCHAR titleText[MAX_PATH]={0};    //存放标题数组
    20 
    21 HWND nHwnd = ::FindWindow(g_ClassNme,NULL);    //查找窗口
    22 while(nHwnd!=NULL)        //循环遍历
    23 {
    24     ::GetWindowText(nHwnd,titleText,MAX_PATH);    //获取标题
    25     if(_tcslen(titleText)>0)MessageBox(titleText);    //判断长度输出标题
    26     
    27     nHwnd = ::FindWindowEx(0,nHwnd,g_ClassNme,NULL);    //继续查找下一个
    28 }

     

  • 相关阅读:
    Java多态(更新中...)
    C语言free释放内存后为什么指针里的值不变?竟然还可以输出?
    LeetCode:344-反转字符串
    20150518 字符设备驱动
    20150517 Linux文件系统与设备文件系统
    20150514我读《深入理解linux内核》之虚拟文件系统笔记
    双系统Ubuntu下修复启动项的两种方法
    20150503 imx257下实现I2C驱动的四种方法
    20150502 调试分析之 使用gdb远程调试ARM开发板
    20150501 调试分析之 修改内核来定位系统僵死问题
  • 原文地址:https://www.cnblogs.com/callback/p/4245286.html
Copyright © 2020-2023  润新知