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とします・・・
失礼いたしました。
SDIでの画面の切り替えについて(「SDI 複数 ビュー」で検索)
http://www.vcppclub.com/samples/vwdoc/p_chgvw/chgvw.html
http://support.microsoft.com/default.aspx?scid=kb;ja;JP141334
メニューの切り替えについて:
SetMenu() で。
MDIでソフトでウインドウを切替えるというのは駄目ですか?
メニューも切替えるのは難しいのではないでしょうか?
CFormViewの複数画面切替の問題が解決しました!!
> dairygoods様
お教えいただいたURLのうち、Microsoftのページにありました
「VSWAP32」というサンプルの方法を参考にしたところ、まずは画面切替の動作が
実現できました。
これから、SetMenu()関数によるメニュー切替方法を試してみます。
> ITO様
作成したいアプリケーションが、限りなく「ダイアログベース」に近い形式であり、
かつメニューを使いたいのでSDIによる実装で試していたところでしたが、
ITOさんの書かれたような方法で、MDIで見た目はSDIみたいな制御もできそうですね。
SetMenu()関数によるメニュー切替方法、何とか理解できました。
どうもありがとうございました。
「画面を表示する」時に、あちこちの関数がどのような順序で呼ばれるかをじっくり調
べてみたところ、少しは仕組みがわかってきたような気がしています。
しかしながら、調査を進めていくうちに、今回はSDIではなくダイアログベースで開発す
るほうがいいと思い、方針を変更してしまいました・・・