クリックされてもアクティブにならないウインドウ

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
jacoby
記事: 106
登録日時: 2006年6月02日(金) 18:20

クリックされてもアクティブにならないウインドウ

#1 投稿記事 by jacoby »

 クリックされてもアクティブにならないウインドウが作れないかと思っています。

 例えば、メインウインドウと、一つのモードレスウインドウから成るアプリが
あるとして、
 メインウインドウの処理で何らかのエラーが発生した時、
それをメッセージボックスで表示したとします。
そのメッセージボックスが表示されている間(okボタンなどの入力待ちの間)は、
モードレスダイアログをアクティブにしたくないのです。

(Googleなどで検索してみたところではアクティブ、非アクティブの判断に
「WM_NCACTIVATE」等のメッセージが使えそうな感じもしたのですが、
実際にどうすればアクティブにさせないように出来るのか掴めていません。)

 何か良い方法があれば是非教えて下さい。
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

Re: クリックされてもアクティブにならないウインドウ

#2 投稿記事 by hira »

単純にアクティブにしないだけなら、EnableWindow関数でウィンドウを無効にしてしまえばよいかと思います。
MessageBox関数の前に
EnableWindow([モードレスウィンドウのハンドル],FALSE)
MessageBox関数の後に
EnableWindow([モードレスウィンドウのハンドル],TRUE)

※意図する動作にならないかもしれませんが…
jacoby
記事: 106
登録日時: 2006年6月02日(金) 18:20

レスありがとうございます。

#3 投稿記事 by jacoby »

MessageBox関数の前に
EnableWindow([モードレスウィンドウのハンドル],FALSE)
MessageBox関数の後に
EnableWindow([モードレスウィンドウのハンドル],TRUE)

※意図する動作にならないかもしれませんが…
 hiraさん、レスありがとうございます。
ホントに、上手く行きました。"EnableWindow"、これを使うんですね。
しっかり非アクティブのままで控えてくれる。意図する動作、そのものです。
長いこと詰まっていたとこが、これで上手くいくんじゃないかと
思います。

 レス、ありがとうございました。またよろしくお願いします。
返信する