画面の遷移方法について

[戻る]
初心者ですいません 2005/09/29(木) 17:11:15
初心者で困っています。宜しくお願いします
VC++6.0のSDIを使用してます。

画面の遷移方法について質問します。

ダイアログにて作成した、A画面とB画面があります。
A画面にはボタンがあり、ボタンを押下することで
B画面を表示します。

そこで、B画面を表示した時にA画面を閉じたいのですが、
方法が解りません。

メイ 2005/09/29(木) 17:38:54
A画面とB画面って親子関係ですか?
であれば、私がよくやる方法は、
・B画面を呼び出すタイミングでA画面を非表示にする。
↓
・B画面を閉じるタイミングでA画面を表示する。
という方法を取っています。
A画面を閉じたい理由が、A画面が見えるのがNGということだけであれば、
それでもいいのかな?

A画面とB画面は親子関係ではなく、全く別物なら、
目に見えない画面「C画面」を用意して、
・C画面からA画面を呼び出す。
↓
・A画面のボタンが押されたタイミングでA画面を閉じ、B画面を呼び出す。
としたらできるかと。(やったことないけど)

「初心者ですいません」さんの意図と異なってくるかもしれませんが。(_ _)

メイ 2005/09/29(木) 17:40:37
>取っています
採っています

初心者ですいません 2005/09/29(木) 19:49:39
メイさん
貴重なコメントありがとうございます。

>A画面のボタンが押されたタイミングでA画面を閉じ、B画面を呼び出す。
>としたらできるかと。(やったことないけど)

とありますが、実際にその方法でプログラムしたいです。
ですが、勉強不足で方法が解りません。(調べ足りないというのもあります。)

何か、参考になるプログラミング等がございましたら、幸いです。

よろしくお願いします。

tib 2005/09/29(木) 20:05:13
「画面を閉じる」というのは、「画面を非表示にする」でもいいですか?

A画面のclass→CDlgA
B画面のclass→CDlgB
A画面にある「B画面を開くボタン」で呼ばれる関数→CDlgA::OnButton1()

とすると、

void CDlgA::OnButton1()
{
  CDlgB dlgB;
  ShowWindow( SW_HIDE );
  dlgB.DoModal();
  ShowWindow( SW_SHOW );
}

こんなんで、一応お望みの事はできそうです。

初心者ですいません 2005/09/29(木) 20:32:17
tib さん
貴重なコメントありがとうございます。

出来ました。
もう少しご質問させてください。よろしくお願いします。


質問内容:
Aの画面からボタンを押下し、Bの画面へ表示しました。
今度は、Bの画面にもボタンがあり、
Bの画面でボタンを押下した場合、Cの画面を表示します。
その時は、A、Bの画面を非表示にしたいです。
Cの画面が終了した時に、Aの画面を表示する事は出来ますか。

また、Aの画面を終了すると全ての画面が終了している
状態にしたいのです。


参考になるプログラミング等がございましたら、幸いです。
本当にお世話になっております。

wood 2005/09/29(木) 21:19:49
「SWAP32」と言うサンプルを探してください
ここの過去検索を行ってもらえば、サンプルの場所や、ソースの解説
いじるポイント以前に書いてあります
またこのサンプルの難点についても、他の回答者の方に書いてもらった
物が有ると思います

tib 2005/09/29(木) 23:38:21
> Cの画面が終了した時に、Aの画面を表示する事は出来ますか。
できます。

先の私のアドバイスを応用すれば自ずと答えが出てくるでしょう。

初心者ですいません 2005/09/30(金) 09:31:04
[[解決]]
woodさん
tibさん
ありがとうございます。


アドバイス通り、がんばりたいと思います。

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