プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

指定ウインドウの状態

2007年09月27日 09時16分47秒 | ウインドウ関連

ウインドウ状態やタイプを調べるには次の関数群を利用します。(戻る)

  1. 子ウインドウかどうか調べます。(IsChild)
  2. 最小化されているのか調べます。(IsIconic)
  3. 最大化されているのか調べます。(IsZoomed)
  4. ウインドウの表示状態を調べます。(IsWindowVisible)
  5. ウインドウの有効状態を調べます。(IsWindowEnabled)
  6. ウインドウが Unicode タイプか調べます。(IsWindowUnicode)
  7. ウインドウのハンドルが有効か調べます。(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;
}
  • 「スタート」-「アクセサリ」からメモ帳と電卓を起動してから試して下さい。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 画面9箇所にウインドウを移動 | トップ | 指定ウインドウの検索 »
最新の画像もっと見る

コメントを投稿

ウインドウ関連」カテゴリの最新記事