Createで作成したダイアログのZ順について
- 題名: Createで作成したダイアログのZ順について
- 著者: としぞう
- 日時: 2009/08/19 1:15:20
- ID: 25235
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: Createで作成したダイアログのZ順について
- 著者: Blue
- 日時: 2009/08/19 9:34:08
- ID: 25236
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: Createで作成したダイアログのZ順について
- 著者: としぞう
- 日時: 2009/08/19 23:02:34
- ID: 25242
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[その他]
お世話になります。
基本クラスがCFormViewのSDIのプロジェクトで作成しています。
起動時にCreate()にてダイアログを2つ(今後増える予定)作成し初期表示時は
ShowWindow(SW_HIDE)にて非表示にしておき
CFormViewに貼り付けたボタンを押下することでShowWindow(SW_SHOW)で
表示させています。
メインウインドウとダイアログ2つを同時に表示し、且つすべての画面を
操作する事はできているのですが、問題が一つありまして
アクティブになっているダイアログを最前面にしたいのですが出来ません。
Createの際に
dlg1.Create((UINT)IDD_DLG_GAMEN1);
dlg1.ShowWindow(SW_HIDE);
dlg2.Create((UINT)IDD_DLG_GAMEN2);
dlg2.ShowWindow(SW_HIDE);
とすると、最初にCreate()した画面が前面にきて
dlg2の画面をアクティブにしてもdlg1の画面の前には出てくれません。
親の画面を指定し
dlg1.Create((UINT)IDD_DLG_GAMEN1, this);
dlg1.ShowWindow(SW_HIDE);
dlg2.Create((UINT)IDD_DLG_GAMEN2, this);
dlg2.ShowWindow(SW_HIDE);
とすると親ウインドウをクリックするとdlg1、dlg2共に親ウインドウの
後ろに隠れてしまいます。
thisをメインフレームのハンドルにしても第2引数を省略した時と同じ結果になりました。
ダイアログは常に親ウインドウの前に表示され、アクティブになったダイアログが
ほかのダイアログよりも常に最前面に表示されるようにする為には
どうしたらよろしいでしょうか?
よろしくお願いします。
開発環境
VS2005 VC++ MFCを使用しています。
OS:WindowsXP