delphi

z-order 취득

knoen 2014. 1. 7. 21:54

GetTopWindow는 이름과 달리 mdi같은 자 윈도를 가지는 경우 작동함.




GetWindow

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

function GetWindow(hWnd: HWND;
                   uCmd: UINT): HWND;

関数が成功すると、ウィンドウのハンドルが返ります。指定した関係を持つウィンドウがない場合は、0 が返ります。

hWnd: HWND
基準となるウィンドウのハンドルを指定します。
uCmd: UINT
hWndで指定したウィンドウと取得したいウィンドウの関係を表す以下の定数のいずれかを指定します。
取得するウィンドウとの関係(GetWindow)
GW_CHILD = 5//指定された親ウィンドウのZ オーダーが一番上の子ウィンドウのハンドルを取得
GW_ENABLEDPOPUP//(Win2000以降)指定された親ウィンドウのポップアップウィンドウのハンドルを取得
GW_HWNDFIRST = 0//同じ種類で最も高い Z オーダーを持つウィンドウのハンドルを取得
GW_HWNDLAST = 1//同じ種類で最も低い Z オーダーを持つウィンドウのハンドルを取得
GW_HWNDNEXT = 2//Z オーダーが 1 つ下のウィンドウのハンドルを取得
GW_HWNDPREV = 3//Z オーダーが 1 つ上のウィンドウのハンドルを取得
GW_OWNER = 4//オーナーウィンドウのハンドルを取得
GW_MAX = GW_CHILD

var
  hOwner :HWnd;
begin
  hOwner :=GetWindow(form2.Handle, GW_OWNER);
  if hOwner <> 0 then
  FlashWindow(hOwner, true);
end;