win32の-EnumChildWindows使用

#include <はWindows.h> 
の#include <iostreamの> 
する#include < ストリング > 静的BOOL CALLBACK enumchildWindowCallback(HWND hWndは、LPARAMのLPARAM){
     int型の長さ= GetWindowTextLength(のhWnd)。
    CHAR *バッファ= 新しいCHAR [長さ+ 1 ]。
    GetWindowText(hWndは、バッファ、長さ + 1 )。
    std :: 文字列WINDOWTITLE(バッファ); 
    std :: coutの <<のhWnd << " " << WINDOWTITLE << はstd ::てendl; 返すTRUE; 
} int型

 


    

メイン()
{ 
    HWND HWND =(HWND)0x000D0DEE ; // の親ウィンドウハンドル
    EnumChildWindows(HWND、enumchildWindowCallback、NULL); 

    STD :: cin.ignore(); 
    戻り 0 ; 
}

開発:(子ウィンドウは含みません)を使用するEnumWindows列挙ウィンドウハンドル

#include <はWindows.h> 
の#include < ストリング > 
の#include <iostreamの> 静的BOOL CALLBACK enumchildWindowCallback(HWND hWndは、LPARAMのLPARAM){
 int型の長さ= GetWindowTextLength(のhWnd)。
CHAR *バッファ= 新しいCHAR [長さ+ 1 ]。
GetWindowText(hWndは、バッファ、長さ + 1 )。
std :: 文字列WINDOWTITLE(バッファ); INT、N =(INT )のhWnd。
// 見えないか、不足しているタイトルの場合は、Windowsを無視
 //     もし(IsWindowVisible(hWndを)&&長!= 0){

 


std :: coutの<< N << " " << WINDOWTITLE << はstd ::てendl;
//     } 
を返すTRUE; 
} 

静的BOOL CALLBACK enumWindowCallback(HWND hWndは、LPARAMのM){ 
TCHAR _classbuf [ 255 ]。
INT長= GetWindowTextLength(のhWnd)。
CHAR *バッファ= 新しい CHAR [長さ+ 1 ]。
GetWindowText(hWndは、バッファ、長さ + 1 )。
std :: 文字列WINDOWTITLE(バッファ); 
M = getClassNameメソッド(hWndは、_classbuf、1024 )。
int型N =(INT )のhWnd。
// 目に見えないまたはタイトル不足している場合は、Windowsを無視
 //     するif(!IsWindowVisible(hWndを)&&長さ= 0){ 
のstd :: coutの<< nは<< " " << WINDOWTITLE << はstd ::てendlを。
//     EnumChildWindows(hWndは、enumWindowCallback、M)。
//     } 
を返すTRUE; 
} 

int型のmain()
{ 
のstd :: COUT << " Enmumeratingウィンドウ... " << はstd :: ENDL。
EnumWindows(enumWindowCallback、NULL); 

std :: cin.ignore(); 
リターン 0 ;
あなたはEnumChildWindows(hWndを、enumWindowCallback、m)の注意事項を削除すると、すべてのウィンドウを列挙

おすすめ

転載: www.cnblogs.com/strive-sun/p/12653803.html