ページ 11

最前面ウインドウか調べる

Posted: 2008年11月01日(土) 11:42
by rest
ウインドウが最前面化されているか取得するには
どうすればいいのですか?
最前面化は簡単に出来るのですが。
どなたか教えてください。

Re: 最前面ウインドウか調べる

Posted: 2008年11月01日(土) 17:40
by NoWest
> ウインドウが最前面化されているか取得するには
> どうすればいいのですか?
> 最前面化は簡単に出来るのですが。
> どなたか教えてください。
確実に行くなら、
最前面ウィンドウかどうかを調べたいウィンドウの拡張スタイルを調べます。
もし、調べたいウィンドウのハンドル値がhwndだとすると

コード: 全て選択

Dim ex_style As DWord
ex_style = GetWindowLong(hwnd,GWL_EXSTYLE)
あとは取得した拡張スタイルにWS_EX_TOPMOSTが含まれているかを調べます。

コード: 全て選択

If ex_style And WS_EX_TOPMOST Then
'最前面ウィンドウであった場合の処理

Else
'最前面ウィンドウでなかった場合の処理

End If

ちなみに最前面ウィンドウの解除も上の手順の反対を行えばできます。

コード: 全て選択

Dim ex_style As DWord
ex_style = GetWindowLong(hwnd,GWL_EXSTYLE)
ex_style = ex_style And (Not(WS_EX_TOPMOST))
SetWindowLong(hwnd,GWL_EXSTYLE,ex_style)

ありがとうございます

Posted: 2008年11月05日(水) 20:59
by rest
教えていただき、ありがとうございます。
ActiveBasicは少し前に始めたばかりなのでよく分かりません。
今後も、わからない事があったら、質問させていただきます。