首页 > 代码库 > MFC 记录- 遍历窗口

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 text10   LPTSTR lpString,  // address of buffer for text11   int nMaxCount     // maximum number of characters to copy12 );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 }

 

 

MFC 记录- 遍历窗口