- PR -

MFC MDIでのダイアログ表示について

1
投稿者投稿内容
SumI
会議室デビュー日: 2006/01/23
投稿数: 11
投稿日時: 2006-02-03 17:59
Win2000SP4
VS2003 C++
にてMFC/MDIのソフトを作成しています。

新しいプロジェクトから順に選択していきMFC/MDIのスケルトン作成後
メニューに管理−サーバーリストを追加して
サーバーリスト選択時にダイアログボックスを表示するように組んでいたのですが

追加してすぐのダイアログボックスを表示させると
リソースのデザインには表示されていない
OKボタンとキャンセルボタンとTODO: コントロールをここに置くと表示されたStaticText
が表示されてしまいます。
※初期に設置されているOKボタン、キャンセルボタンとは別にボタンがついてしまいます。

取り除きたくてもデザインを見た限りではどこにも上記ボタンとコントロールは存在していないので取り除けません
表示には.DoModal()を使用していますがこれ以前に何か処理をおかないといけないんでしょうか?

よろしくお願いします。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-03 18:51
そのダイアログのリソーススクリプトはどうなっていますか?
その部分だけでいいので貼ってください。

後、どうやってダイアログを追加しましたか?

_________________
囚人のジレンマな日々
SumI
会議室デビュー日: 2006/01/23
投稿数: 11
投稿日時: 2006-02-03 19:12
リソーススクリプトです

IDD_SVRSELECT DIALOGEX 0, 0, 186, 95
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "キャンセル",IDCANCEL,129,24,50,14
END

追加した方法は、リソースビューにあるツリーのDialog部分を右クリック->Dialogを挿入
で追加しました。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-03 19:29
ん〜、同じ事してるんですが出ませんねぇ。
後は cpp の方かな。

CDialog を継承して新しいダイアログクラスを作ってますか?

コード:
CDialog testDlg(IDD_SVRSELECT);
testDlg.DoModal();


直にこれでもいいですけど。

#MFC わ、忘れた…
_________________
囚人のジレンマな日々
SumI
会議室デビュー日: 2006/01/23
投稿数: 11
投稿日時: 2006-02-03 22:49
CDialogは継承して作ってなかったと思います。
たしか

CTestDlg ctDlg;
ctDlg.DoModal();

と言った感じだったと思います。
すいません、ソース類が職場のPC内なので月曜まで詳細がわからないです
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-03 23:28
では、先程のリソーススクリプトも「まさにそのもの」というわけではないですね。
引用:

CTestDlg ctDlg;
ctDlg.DoModal();


だと、CDialog を継承して新しいダイアログクラスを作っています。
取り敢えず待ちます。
_________________
囚人のジレンマな日々
SumI
会議室デビュー日: 2006/01/23
投稿数: 11
投稿日時: 2006-02-06 08:59
すいません、解決しました。
コードをもう一度見直したところ
CDialogを継承すべきところがCDHtmlDialogを継承していました。
1

スキルアップ/キャリアアップ(JOB@IT)