ウインドウ状態やタイプを調べるには次の関数群を利用します。(戻る)
- 子ウインドウかどうか調べます。(IsChild)
- 最小化されているのか調べます。(IsIconic)
- 最大化されているのか調べます。(IsZoomed)
- ウインドウの表示状態を調べます。(IsWindowVisible)
- ウインドウの有効状態を調べます。(IsWindowEnabled)
- ウインドウが Unicode タイプか調べます。(IsWindowUnicode)
- ウインドウのハンドルが有効か調べます。(IsWindow)
プロトタイプ宣言
BOOL IsChild( HWND hParent, // 親ウインドウのハンドル HWND hWnd // 子ウインドウのハンドル ); BOOL IsIconic( HWND hWnd // ウインドウのハンドル ); BOOL IsZoomed( HWND hWnd // ウインドウのハンドル ); BOOL IsWindowVisible( HWND hWnd // ウインドウのハンドル ); BOOL IsWindowEnabled( HWND hWnd // ウインドウのハンドル ); BOOL IsWindowUnicode( HWND hWnd // ウインドウのハンドル ); BOOL IsWindow( HWND hWnd // ウインドウのハンドル );
サンプル
#include <stdio.h> #include <windows.h> // 指定ウインドウの状態を調べる VOID CheckWindowStatus( HWND hWnd ) { HWND hParent = GetDesktopWindow(); printf( TEXT("%c %c %c %c %c %c %c\n"), IsChild(hParent,hWnd) ? 'C' : '_', // 子ウインドウ IsIconic(hWnd) ? 'I' : '_', // 最小化状態 IsZoomed(hWnd) ? 'Z' : '_', // 最大化状態 IsWindowVisible(hWnd) ? 'V' : '_', // 可視状態 IsWindowEnabled(hWnd) ? 'E' : '_', // 有効状態 IsWindowUnicode(hWnd) ? 'U' : '_', // Unicodeタイプ IsWindow(hWnd) ? 'W' : '_' ); // ウインドウ有無 } // メイン関数(使い方) int main( void ) { HWND hWnd; // ステータス情報 printf( TEXT("名前 [ハンドル値] C I Z V E U W\n") ); printf( TEXT("-------------------------------------\n") ); // メモ帳 hWnd = FindWindow( TEXT("Notepad"), NULL ); printf( TEXT("%-10s [0x%p] "), TEXT("メモ帳"), hWnd ); CheckWindowStatus( hWnd ); // 電卓 hWnd = FindWindow( TEXT("SciCalc"), NULL ); printf( TEXT("%-10s [0x%p] "), TEXT("電卓"), hWnd ); CheckWindowStatus( hWnd ); printf( TEXT("-------------------------------------\n") ); return 0; }
- 「スタート」-「アクセサリ」からメモ帳と電卓を起動してから試して下さい。
関連記事
- 指定ウインドウの状態
- 指定ウインドウの検索
- 指定の子ウインドウの検索
- Zオーダーのウインドウを取得
- Zオーダーの前後ウインドウを取得
- 最初の子ウインドウを取得
- トップレベル・ウインドウの列挙
- 可視ウインドウの列挙
- 特定アプリケーションの列挙
- 子ウインドウの列挙
- スレッド・ウインドウの列挙
※コメント投稿者のブログIDはブログ作成者のみに通知されます