ダイアログにダイアログ

[戻る]
初心者 2009/08/23(日) 19:33:47
VS2005 MFC ダイアログベースで作成しています。

メインダイアログ上に、ダイアログ(ボーダーなし)を描画させたいのですが、
これはどのように処理すればよいのでしょうか?

メインダイアログの位置を調べて、ボーダーなしダイアログをMoveWindow()するか
と思っていましたが、描画更新処理がないと2つがわかれていまいます。

ボタンとかのコントロールのように貼り付けてできればよいと思うのですが、
このような場合どのように処理するのでしょうか?

wclrp ( 'o') 2009/08/24(月) 06:22:47
モードレスダイアログを
子ウィンドウにして
WS_EX_CONTROLPARENTも付ける

初心者 2009/08/24(月) 16:55:48
回答ありがとうございます。

WS_EX_CONTROLPARENTもつけてやってみましたが、親ダイアログを動かすと
子ダイアログはそのまま動かず。。(ダイアログが浮いた状態)という感じです。

子ダイアログのプロパティ
Control        :True
Control Parent :True

初心者 2009/08/24(月) 22:46:40
毎回親ダイアログで子ダイアログを描画更新するという方法なのでしょうか?
それともやり方が間違ってる?

wclrp ( 'o') 2009/08/25(火) 07:53:53
子ウィンドウになってない。
あと子ウィンドウにするとタイトルバー(キャプション)は無くなるよ。
描画更新に関しては何が起きているのか知らない。

PATIO 2009/08/25(火) 09:37:29
そもそも、ダイアログ(ボーダーなし)の親ウインドウは
きちんと設定されているのでしょうか?
親子関係がきちんと設定されていれば逆に親ウインドウの外に
出て行けなくなっていそうですけれど。
WS_CHILDが設定されていないと言う事は無いですか?

初心者 2009/08/25(火) 10:45:03
子ダイアログが子ウィンドウということでしょうか?

現在、ダイアログとして登録しています。
親ダイアログのメンバ変数として子ダイアログがあり、それを

m_childDlg.Create(....) としています。

これは子ウィンドウではないですよね? ダイアログとしてリソースを追加
している時点で間違いでしょうか?

subaru 2009/08/25(火) 11:13:21
ダイアログのプロパティで
Style が「子」になっていれば子ウィンドウになります。

初心者 2009/08/25(火) 12:04:15
[[解決]]
Style で 子ウィンドウにでき、希望通り動作させることができました。
皆様ありがとうございます。
WS_EX_CONTROLPARENTが残っていますが、一応解決とさせていただきます。

古いスレッドには追加発言できません。