ページ 11

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

Posted: 2006年11月04日(土) 00:03
by jacoby
 クリックされてもアクティブにならないウインドウが作れないかと思っています。

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

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

 何か良い方法があれば是非教えて下さい。

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

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

※意図する動作にならないかもしれませんが…

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

Posted: 2006年11月05日(日) 21:14
by jacoby
MessageBox関数の前に
EnableWindow([モードレスウィンドウのハンドル],FALSE)
MessageBox関数の後に
EnableWindow([モードレスウィンドウのハンドル],TRUE)

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

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