SDIでCFormViewベースの複数画面遷移方法は?

[戻る]
blue 2006/07/31(月) 13:36:29
VC++でAppWizardを使って、SDIでCFormViewベースとするプロジェクトを新規作成し、リ
ソースビューのDialog項目にフォームビューを複数追加しました。
(画面をGUIベースで作成したいので、ベースとなるクラスはCFormViewにしました)

■質問
以下の機能を実現したいと考えています。
参考ページなどの情報でも助かりますので、お教えいただけませんでしょうか。

1.アプリケーションには、画面(フォームビュー)が複数ある。
  (例:画面1、画面2、画面3。)
2.画面ごとに、メニューバーを持ち、異なるメニュー項目を持つ。
3.最初に起動する画面1にて、メニューバーのメニューをクリックすると画面2に、
  フォーム上のボタンをクリックすると画面3に切り替わる。

CFormViewをベースとする画面で、画面遷移をさせる方法がわかりません。

入門書を読むと、チュートリアルのように画面が切り替わっていくアプリケーションは
ダイアログベースで作ると良いとありましたが、今回はSDIとCFormViewにて作りたいの
です。
(C言語、VB、Javaを少しずつやった事がある程度の知識からVC++を勉強開始し、
コントロールの簡単な使い方を学んだ、というレベルの初心者です。)

■環境
開発OS:Windows XP Pro
動作対象OS:Windows 98、2000、XP
開発言語:VC++/MFC
開発環境:VisualStudio2005(.NETFrameworkは不使用)


どうぞよろしくお願いいたします。

blue改めyellow 2006/07/31(月) 13:41:23
ほかの質問を拝見しましたが、似たハンドルネームの方がいらっしゃるようですので、
名前をblueではなくyellowとします・・・

失礼いたしました。

dairygoods 2006/07/31(月) 13:55:49
SDIでの画面の切り替えについて(「SDI 複数 ビュー」で検索)
http://www.vcppclub.com/samples/vwdoc/p_chgvw/chgvw.html
http://support.microsoft.com/default.aspx?scid=kb;ja;JP141334

メニューの切り替えについて:
SetMenu() で。

ITO 2006/07/31(月) 21:42:16
MDIでソフトでウインドウを切替えるというのは駄目ですか?
メニューも切替えるのは難しいのではないでしょうか?

blue改めyellow 2006/08/01(火) 15:53:01
CFormViewの複数画面切替の問題が解決しました!!

> dairygoods様
お教えいただいたURLのうち、Microsoftのページにありました
「VSWAP32」というサンプルの方法を参考にしたところ、まずは画面切替の動作が
実現できました。
これから、SetMenu()関数によるメニュー切替方法を試してみます。


> ITO様
作成したいアプリケーションが、限りなく「ダイアログベース」に近い形式であり、
かつメニューを使いたいのでSDIによる実装で試していたところでしたが、
ITOさんの書かれたような方法で、MDIで見た目はSDIみたいな制御もできそうですね。

blue改めyellow 2006/08/03(木) 20:07:06
[[解決]]
SetMenu()関数によるメニュー切替方法、何とか理解できました。
どうもありがとうございました。
「画面を表示する」時に、あちこちの関数がどのような順序で呼ばれるかをじっくり調
べてみたところ、少しは仕組みがわかってきたような気がしています。

しかしながら、調査を進めていくうちに、今回はSDIではなくダイアログベースで開発す
るほうがいいと思い、方針を変更してしまいました・・・

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