モーダルダイアログがタスクに表示されてしまう – プログラミング – Home

モーダルダイアログがタスクに表示されて...
 
通知
すべてクリア

[解決済] モーダルダイアログがタスクに表示されてしまう


タフガイ
 タフガイ
(@タフガイ)
ゲスト
結合: 20年前
投稿: 30
Topic starter  

VC++6.0 MFC ダイアログベースで開発しています。

トップのダイアログにボタンをいくつか貼り付けて、ボタンを押すと新たなダイアログ
をトップに被せて表示する仕組みになっています。
ところが、いくつかのダイアログは大丈夫なんですが、特定のダイアログだけdomodal()
すると
タスクバーに新たなタスクが表示されてしまいます。
ダイアログをクローズするとそのタスクも消えます。
関係あるか分かりませんが、全てのダイアログのタイトルバーは非表示で作っていま
す。

色々と調べたのですが、原因が分からなくて困っています。
どなたか心当たりのある方がいらっしゃいましたら、助言お願いします。


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

そのダイアログにWS_EX_APPWINDOWスタイルが付いていませんか?

リソースエディタでは確認できないと思いますので、
.rcファイルをテキストとして開いて、ダイアログの定義を見てみてください。


返信引用
REE
 REE
(@REE)
ゲスト
結合: 24年前
投稿: 240
 

そのダイアログだけ親ウインドウの指定が違っているとか?


返信引用
タフガイ
 タフガイ
(@タフガイ)
ゲスト
結合: 20年前
投稿: 30
Topic starter  

dairygoodsさん、REEさん、早速のレスありがとうございます。

.rcファイルに検索をかけてみたところ、WS_EX_APPWINDOWが入っていました。
それを消してみたところ、タスクに表示されることはなくなりました。
早々に解決できて嬉しいです。ありがとうございました。

しかし、普通に作ったつもりなんですが、なぜWS_EX_APPWINDOWというのが付いていたの
でしょうか?
後学のためにも、原因を知っておきたいので考えられる可能性を教えていただけないで
しょうか?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> しかし、普通に作ったつもりなんですが、なぜWS_EX_APPWINDOWというのが付いていた

> でしょうか?

AppWizard(MFC)でダイアログベースを選んだときに
最初から用意されているダイアログには、WS_EX_APPWINDOWが付いています。
(そうでないと、ダイアログアプリがタスクバーに出ないですし)

で、それをコピーするとWS_EX_APPWINDOWも引き継がれてしまいます。

リソースメニューの「挿入」から新しくダイアログを作った場合は、
付かないようです。


返信引用
タフガイ
 タフガイ
(@タフガイ)
ゲスト
結合: 20年前
投稿: 30
Topic starter  

dairygoodsさん、レスありがとうございます。

全て同じダイアログサイズなので、メインをコピーして作った可能性が高いです。

なるほど、勉強になりました。
以後、気を付けます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました