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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
rest

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

#1 投稿記事 by rest »

ウインドウが最前面化されているか取得するには
どうすればいいのですか?
最前面化は簡単に出来るのですが。
どなたか教えてください。
NoWest
記事: 264
登録日時: 2005年5月31日(火) 10:52
お住まい: 高知
連絡する:

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

#2 投稿記事 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)
rest

ありがとうございます

#3 投稿記事 by rest »

教えていただき、ありがとうございます。
ActiveBasicは少し前に始めたばかりなのでよく分かりません。
今後も、わからない事があったら、質問させていただきます。
返信する