忍者ブログ
適当に日々あったこととか書いてます。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

HWND GetWindow(
HWND hWnd, // 元ウィンドウのハンドル
UINT uCmd // 関係
);

指定されたウィンドウと指定された関係( またはオーナー)にあるウィンドウのハンドルを返します。

<パラメータ>
・hWnd
 ウィンドウのハンドルを指定します。
 このウィンドウを元に、uCmd パラメータの値に基づいてウィンドウが検索されます。

・uCmd
 指定したウィンドウとハンドルを取得するウィンドウとの関係を指定します。
 次の値のいずれかを指定できます。
 GW_CHILD 
 指定したウィンドウが親ウィンドウの場合は、Z オーダーが一番上の子ウィンドウのハンドルを取得します。それ以外の場合は、NULL が返ります。
この関数は、指定されたウィンドウの子ウィンドウだけを調べます。それより下位の子孫は調べません。

 GW_ENABLEDPOPUP 
 Windows 2000:指定したウィンドウをオーナーとする有効なポップアップウィンドウのハンドルを取得します( この検索では、GW_HWNDNEXT で見つかる最初のウィンドウを使います)。
有効なポップアップウィンドウがない場合は、指定したウィンドウのハンドルが返ります。

 GW_HWNDFIRST 
 指定したウィンドウと同じ種類で最も高い Z オーダーを持つウィンドウのハンドルを取得します。
指定したウィンドウが最前面ウィンドウの場合は、最も高い Z オーダーを持つ最前面ウィンドウのハンドルが返ります。
指定したウィンドウがトップレベルウィンドウの場合は、最も高い Z オーダーを持つトップレベルウィンドウのハンドルが返ります。
指定したウィンドウが子ウィンドウの場合は、最も高い Z オーダーを持つ兄弟ウィンドウのハンドルが返ります。

 GW_HWNDLAST
 指定したウィンドウと同じ種類で最も低い Z オーダーを持つウィンドウのハンドルを取得します。
指定したウィンドウが最前面ウィンドウの場合は、最も低い Z オーダーを持つ最前面ウィンドウのハンドルが返ります。
指定したウィンドウがトップレベルウィンドウの場合は、最も低い Z オーダーを持つトップレベルウィンドウのハンドルが返ります。
指定したウィンドウが子ウィンドウの場合は、最も低い Z オーダーを持つ兄弟ウィンドウのハンドルが返ります。

 GW_HWNDNEXT
 指定したウィンドウより Z オーダーが 1 つ下のウィンドウのハンドルを取得します。指定したウィンドウが最前面ウィンドウの場合は、1 つ下の最前面ウィンドウのハンドルが返ります。
指定したウィンドウがトップレベルウィンドウの場合は、1 つ下のトップレベルウィンドウのハンドルが返ります。
指定したウィンドウが子ウィンドウの場合は、1 つ下の兄弟ウィンドウのハンドルが返ります。

 GW_HWNDPREV 
 指定したウィンドウより Z オーダーが 1 つ上のウィンドウのハンドルを取得します。
指定したウィンドウが最前面ウィンドウの場合は、1 つ上の最前面ウィンドウのハンドルが返ります。
指定したウィンドウがトップレベルウィンドウの場合は、1 つ上のトップレベルウィンドウのハンドルが返ります。
指定したウィンドウが子ウィンドウの場合は、1 つ上の兄弟ウィンドウのハンドルが返ります。

 GW_OWNER 
 指定したウィンドウのオーナーウィンドウのハンドルを取得します。


<戻り値>
関数が成功すると、ウィンドウのハンドルが返ります。
指定した関係を持つウィンドウがない場合は、NULL が返ります。
拡張エラー情報を取得するには、 関数を使います。

<解説>
すべての子ウィンドウを取得する場合、EnumChildWindows 関数を使った方が GetWindow 関数をループ処理で呼び出すよりも信頼性の高い結果が得られます。
GetWindow 関数を呼び出してウィンドウを列挙すると、無限ループに陥ったり、すでに破棄されているウィンドウのハンドルを参照する危険性がでてきます。

<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用

引用:ttp://msdn.microsoft.com/ja-jp/library/cc364757.aspx

<使用メモ>
EnumWindowsのコールバックで取得したハンドルがオーナーウィンドウ無しかどうかの判定に使用。
if(GetWindow(hwnd, GW_OWNER) == NULL){
 // オーナーウィンドウ無し
}
って感じ。
オーナーウィンドウ無し=このハンドルはオーナーウィンドウ、ってことかな・・・?
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新CM
[06/02 Sai]
[04/23 Sai]
[02/02 tuku]
[11/06 sai]
[10/13 Sai]
最新TB
プロフィール
HN:
なりゆき流
性別:
非公開
趣味:
ネトゲ、読書(漫画とか漫画とか漫画とか)
自己紹介:
日々をだらだらと生きております。
バーコード
ブログ内検索
アクセス解析

HTML & CSS Designed by ittuan

忍者ブログ │ [PR]