【Misson1 画面】 |
![]() |
図1 Mission1画面 |
【ステップ2−1 クラスウィザードの起動】 | 解説 |
![]() |
「表示」メニュー −>「ClassWizard 」 と選択し、 クラスウィザードを起動する。 メニュー操作がうざいと感じるならば、 Ctrl-W (Control キーを押しながら"W"のキーを押す) でも、同じクラスウィザードが起動する。 |
図2 クラスウィザードの起動 |
【ステップ2−2 クラスウィザードで関数を選択】 | 解説 |
![]() |
この画面が、 Mission1 で作成したアプリケーションの 改造の舞台になる。 「クラス名」なるポップアップメニューより、 「CMission1App」を選択し、 「メッセージ」という欄より「InitInstance」を 探し出して、選択(マウスでクリック)しよう。 それができたら、「コード編集」ボタンをクリック。 |
図3 クラスウィザード画面 |
【ステップ2−3 InitInstance の改造 Part1】 | 解説 |
![]() |
ステップ2−2の後、 左のような画面になったはずだ。 スペースの都合で、予め注釈は削除してある。 画像を縮小した関係で少々読みにくいが、 無理に読む必要は無い。 この関数の中はごっそり入れ替える事になる。 それは次のステップにて。 |
図4 InitInstance 関数 |
【ステップ2−4 InitInstance の改造 Part2】
改造後のInitInstance を以下に示す。
要するに、ステップ2−3で表示されたInitInstance の中身をごっそり
消して、以下の関数の中身を書きこめば良い。
これにより、ドキュメントビューアーキテクチャは使用されなくなる。
できたら、2−5へ。
BOOL CMission1App::InitInstance() { /*SetRegistryKey(_T("Local AppWizard-Generated Applications"));*/ LoadStdProfileSettings(0); /* Load the main frame window. */ CMainFrame* pFrame = new CMainFrame; if (!pFrame->LoadFrame(IDR_MAINFRAME, WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX)) { return FALSE; } /* Save the main window pointer. */ m_pMainWnd = pFrame; m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; }
【ステップ2−5 CMainFrame の改造 Part1】 | 解説 |
![]() |
再度 ClassWizard を起動。 Control-W で起動するのが早いしラクチンだ。 「クラス名」に「CMainFrame」を選択し、 「メッセージ」欄より「PreCreateWindow」を選択する。 選択したら「コード編集」をクリック。 |
図5 ClassWizard 再度 |
【ステップ2−6 CMainFrame の改造 Part2】 | 解説 |
![]() |
そうすると、 このようなリストが表示された はずである。 例によって読みにくいが、 気にしないでOKだ。 また書きかえるので、次へ進もう。 |
図6 ウインドウの初期設定 |
【ステップ2−7 関数 PreCreateWindow の改造】
ステップ2−6 で表示させた関数を書きかえると、
ウインドウのスタイルを変更できる。
以下の設定は、サイズ固定(640×480)ウインドウの作成。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; RECT rect; CWnd *wnd; wnd = this->GetDesktopWindow(); if (wnd){ wnd->GetWindowRect(&rect); cs.x = (rect.right - rect.left)/2 - 320; cs.y = (rect.bottom - rect.top)/2 - 240; cs.cx= 640; cs.cy= 480; cs.dwExStyle=WS_EX_OVERLAPPEDWINDOW; cs.style= WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX; }else return FALSE; return TRUE; }
【ステップ2−7 ワークスペースいじり Part1】 | 解説 |
![]() |
今度はVisualC++ のウインドウの左側部分。つまり、左の図の部分 に着目する。 この部分を、「ワークスペース」と言う。 そしてまず、ワークスペースの下部に着目。ここには、 "ClassView","ResourceView","FileView"という3つのタブがある。 この内、FileView タブをクリックし、表示されたリスト内の 「mission1 ファイル」の横の + マークをクリック。 続いて、"Source Files","Header Files"の横の + マークをクリック。 そうすると、ステップ2−8のような状況になるはずだ。 |
図7 ワークスペース |
【ステップ2−8 ワークスペースいじりPart2】 | 解説 |
![]() |
こういう画面になったはず、 まず、もはや役立たずのドキュメント・ビュー アーキテクチャを放棄する。 Source Files より
mission1Doc.cpp
mission1View.cpp
Header Files より
mission1Doc.h
をそれぞれ、選択して mission1View.h キーボードのdel キーを押して行く ことで、削除できる。 削除ができたら、
MainFrm.h
をダブルクリックする。
|
図8 確認画面1。 |
【ステップ2−8 CMainFrame の改造 Part3】 | 解説 |
![]() |
すると、こういう画面になったはず。 変更箇所はごく一部だ。 ステップ2−9を参照してくれ。 |
図9 MainFrm.h |
【ステップ2−9 CMainFrame の改造 Part4】
以下のリストの "protected" を "public"に書きかえる。
赤字部分が変更箇所だ。
【変更前】
解説 | |
![]() |
え、何も変わって無いって? いやそうでは無い、画面サイズを変えてみて欲しい。 どうやっても画面サイズは変わらないはずだ。 (最大化・最小化を除く) |
図10 mission2 |