VC++6.0 MFC ダイアログベースで開発しています。
トップのダイアログにボタンをいくつか貼り付けて、ボタンを押すと新たなダイアログ
をトップに被せて表示する仕組みになっています。
ところが、いくつかのダイアログは大丈夫なんですが、特定のダイアログだけdomodal()
すると
タスクバーに新たなタスクが表示されてしまいます。
ダイアログをクローズするとそのタスクも消えます。
関係あるか分かりませんが、全てのダイアログのタイトルバーは非表示で作っていま
す。
色々と調べたのですが、原因が分からなくて困っています。
どなたか心当たりのある方がいらっしゃいましたら、助言お願いします。
そのダイアログにWS_EX_APPWINDOWスタイルが付いていませんか?
リソースエディタでは確認できないと思いますので、
.rcファイルをテキストとして開いて、ダイアログの定義を見てみてください。
そのダイアログだけ親ウインドウの指定が違っているとか?
dairygoodsさん、REEさん、早速のレスありがとうございます。
.rcファイルに検索をかけてみたところ、WS_EX_APPWINDOWが入っていました。
それを消してみたところ、タスクに表示されることはなくなりました。
早々に解決できて嬉しいです。ありがとうございました。
しかし、普通に作ったつもりなんですが、なぜWS_EX_APPWINDOWというのが付いていたの
でしょうか?
後学のためにも、原因を知っておきたいので考えられる可能性を教えていただけないで
しょうか?
> しかし、普通に作ったつもりなんですが、なぜWS_EX_APPWINDOWというのが付いていた
の
> でしょうか?
AppWizard(MFC)でダイアログベースを選んだときに
最初から用意されているダイアログには、WS_EX_APPWINDOWが付いています。
(そうでないと、ダイアログアプリがタスクバーに出ないですし)
で、それをコピーするとWS_EX_APPWINDOWも引き継がれてしまいます。
リソースメニューの「挿入」から新しくダイアログを作った場合は、
付かないようです。
dairygoodsさん、レスありがとうございます。
全て同じダイアログサイズなので、メインをコピーして作った可能性が高いです。
なるほど、勉強になりました。
以後、気を付けます。