Discussion:
MFC&SDIでダイアログを変更する方法が分かりません
(too old to reply)
グレイル
2005-02-21 14:33:02 UTC
Permalink
MFCAppでSDIを選択し、CSampleViewの基本クラスをCFormViewにした場合、最初の画面にリソースのIDD_SAMPLE_FORMが表示されていますよね。

其のとき、IDD_SAMPLE_FORMのボタンをクリックしたら、画面を変える(IDD_NEW_FORMなどの別のリソースを表示させる)にはどうしたらよいのでしょう?あるいは、できないのでしょうか?

できない場合、別の画面変更方法を教えていただけるとありがたいです。

分かりにくいかもしれませんが、ご回答御願致します。
AnswerSoft(M.Fudano)
2005-02-21 16:03:11 UTC
Permalink
グレイルさん、こんばんは!(^^)!ふ~です。
Post by グレイル
其のとき、IDD_SAMPLE_FORMのボタンをクリックしたら、画面を変える(IDD_NEW_FORMなどの別のリソースを表示させる)にはどうしたらよいの
でしょう?あるいは、できないのでしょうか?

// ボタンが押下された。
void MENUDlg::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
COperate dlg;

int ret = dlg.DoModal();
}

IDD_NEW_FORMをCOperate ダイアログクラスに用意して置くと簡単です。
unknown
2005-02-22 11:25:02 UTC
Permalink
返信有難う御座います。
Post by AnswerSoft(M.Fudano)
void MENUDlg::OnButton1(
このMENUDlgクラスはリソースIDD_NEW_FORM編集画面で右クリックのクラスの追加というところから、CDialogクラスを基本クラスに設定して作ったクラスですか?
Post by AnswerSoft(M.Fudano)
COperate dlg;
このCOperateクラスはなんですか?ヘルプを探しても無かったので。
Post by AnswerSoft(M.Fudano)
IDD_NEW_FORMをCOperate ダイアログクラスに用意して置くと簡単です。
この部分もちょっと分かりませんでした。

よければ詳細を教えていただきたいのですが。初心者的な質問で申し訳ないですが、御願致します。
AnswerSoft(M.Fudano)
2005-02-22 13:09:15 UTC
Permalink
こんばんは!(^^)!ふ~です。

◇Visual Studio 2003 C++での操作です。
Post by AnswerSoft(M.Fudano)
void MENUDlg::OnButton1()
このMENUDlgクラスはリソースIDD_NEW_FORM編集画面で右クリックのクラスの追加というところから、CDialogクラスを基本クラスに設定して作っ
たクラスですか?

CSampleView::CSampleView()
: CFormView(CSampleView::IDD)
{
// TODO: 構築コードをここに追加します。
}

中略
// CSampleView メッセージ ハンドラ
void CSampleView::OnBnClickedButton1()
{
// TODO : ここにコントロール通知ハンドラ コードを追加します。
COperate dlg;

INT_PTR ret = dlg.DoModal();
}

ここは、「CFormView」で作成した「SampleView」のソースの中です。
フォームに「Button」を貼り付け、このボタンを「ダブルクリック」すると
作成されるメッセージハンドラに2行追加したもです。
Post by AnswerSoft(M.Fudano)
COperate dlg;
このCOperateクラスはなんですか?ヘルプを探しても無かったので。
ここは、新規作成したクラスです。
<操作方法>
「プロジェクト」ー>「リソースの追加」ー>「Dialog」(マウス選択)ー>「新規作成」

新しいDialogフォームが表示された状態で、このフォームの中央を「ダブルクリック」
基本クラスを「Cdialog」に設定し、クラスを作成します。

最後に、SampleView.cppの中にこのクラスのヘッダーを追加します。

// SampleView.cpp : CSampleView クラスの実装
//

#include "stdafx.h"
#include "Sample.h"

#include "SampleDoc.h"
#include "SampleView.h"
#include ".\sampleview.h"

#include "Operate.h"   // これを追加いたします。

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

この説明は以上です。m(__)m
Takahashi Masahiro
2005-02-22 13:32:32 UTC
Permalink
$B9b66$G$9(B
Post by AnswerSoft(M.Fudano)
void MENUDlg::OnButton1()
$B$?%/%i%9$G$9$+!)(B
Post by AnswerSoft(M.Fudano)
$B#C(BOperate dlg;
$B$3$N(BCOperate$B%/%i%9$O$J$s$G$9$+!)%X%k%W$rC5$7$F$bL5$+$C$?$N$G!#(B
$B$3$NItJ,$b$A$g$C$HJ,$+$j$^$;$s$G$7$?!#(B
$B$^$:(B $BI=<($5$;$?$$%@%$%"%m%0$r%j%=!<%9%(%G%#%?$G:***@.$7$^$9(B
$B%W%m%Q%F%#%&%#%s%I%&$N(BID$B$J$I$rE,@Z$J$b$N$KJQ99$7$^$9(B

$B=PMh>e$,$C$?%U%)!<%`(B($B%@%$%"%m%0(B)$B$r%@%V%k%/%j%C%/$9$k$+(B
$B%U%)!<%`$rI=<($7$F$*$$$F(B $B%W%m%8%'%/%H(B > $B%/%i%9$NDI2C(B $B$r<B9T$7$^$9(B
$B%/%i%9L>$rF~NO!"4pK\%/%i%9$r(BCDialog$B$J$I$rA*Br(B > $B40N;$G=hM}%/%i%9$N%9%1%k%H%s$r:n$j$^$9(B
CHogeDlg $B%/%i%9(B $B$H$9$k$H(B hogeDlg.cpp hogeDlg.h $B$,%W%m%8%'%/%H$KDI2C$5$l$^$9(B

$B<!$K(B $B85$N(B MenuDlg$B$K(B $B%\%?%s$rDI2C$7$F(B $B$=$N%\%?%s$r%@%V%k%/%j%C%/$J$I$7$F(B $B%$%Y%s%H%O%s%I%i$r:***@.$7$^$9(B
$B$9$k$H(B

void CMenuDlg::OnBnClickedButton1()
{
// TODO : $B$3$3$K%3%s%H%m!<%kDLCN%O%s%I%i%3!<%I$rDI2C$7$^$9!#(B

}
$B$H$$$C$?%3!<%I$,=PMh$^$9(B

$B$3$3$***@h$[$I:n$C$?(B $B%U%)!<%`(B CHodeDlg$B$rI=<($5$;$?$$$N$G(B
void CMenuDlg::OnBnClickedButton1()
{
// TODO : $B$3$3$K%3%s%H%m!<%kDLCN%O%s%I%i%3!<%I$rDI2C$7$^$9!#(B
CHogeDlg dlg;
if (dlg.DoModal() == IDOK ) {
// OK$B;~$N=hM}(B
}
}

$B$H$7$^$9(B

$B$^$@$3$N;~E@$G$O(B CHogeDlg$B%/%i%9$r(B CMenuDlg$B%/%i%9$O2?<T$+CN$j$^$;$s(B
MenuDlg.cpp$B%U%!%$%k$N(B $***@hF,IU6a$K(B #include$B9T$,?t9T$"$k$H;W$$$^$9(B
$B$=$N:G8e$N(B #include$B$N<!$N9T$K(B
#include "hogedlg.h"
$B$rDI2C$7$^$7$g$&(B

$B>e5-$O(B $B%b!<%@%k%@%$%"%m%0$N>l9g$G$9(B
$B%b!<%I%l%9%@%$%"%m%0$N>l9g$O(B $B%U%)!<%`MQ$NJQ?t(B($B#d#l#g(B)$B$r(B $B%9%?%F%#%C%/JQ?t$d(B $B%0%m!<%P%kJQ?t$H$7$F$*$$$F(B
dlg.Create(IDD_NEW_FORM);
dlg.ShowWindow( SW_SHOW );

$B$H$$$C$?=hM}$,I,MW$G$9(B
--
$B9b66@/9((B ***@yahoo.co.jp
Microsoft MVP Visual C++
$BJV?.$O!X%0%k!<%W$XJV?.!Y$G(B ...
unknown
2005-02-22 17:05:02 UTC
Permalink
ふ~さん、高橋さん、有難う御座いました!
自分の思ったとおりにできました。

初心者の自分に詳しく説明していただき、本当に感謝しております。
又御世話になることがあるかもしれませんが、宜しく御願します。

では、失礼します。

Loading...