MFC
をテンプレートにして作成
[
トップ
] [
タイトル一覧
|
ページ一覧
|
新規
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* MFC
** Devel
*** 新規プロジェクト
- プロジェクト:MFCアプリケーショ
- シングルアプリケーション
- Unicode オン
- スタイル切り替え オフ
- スタティックライブラリ
- 複合ドキュメントサポートなし
*** Locale
- UTF-8
-- setlocale(LC_ALL, ".UTF8");
- システムの Locale
-- setSystemLocale();
***ドキュメントクラス
- CXXXDoc::Seialize
-- ファイル入出力を記述.このかなからUpdateAllViews(NULL)...
- CXXXDoc::UpdateAllViews()
-- Viewを更新し,CXXXView::OnDraw()に制御を移す.
*** ビュークラス
- CScrollView, CEditView, CGtmlView
- Viewクラスからは GetDocument()関数でDocumentクラスを得...
CXXXDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_pImage = new CImage();
m_pImage->Load(pDoc->GetFileName());
- void CXXXView::OnDraw(CDC* pDC) MFCでは OnPaint()は...
*** メインフレームクラス
*** アプリケーションクラス
- CXXXApp::InitInstance()
-- クラスが生成されるとまずこの関数が呼ばれる
- CXXXApp:OnFileOpen() ファイルのオープン処理
-- DoPromptFileName() ダイアログ
-- OpenDocumentFile(newName) が呼ばれる
- CXXXApp::OpenDocumentFile()
-- Doc, Viewクラスを生成し,CXXXDoc::Serialize() を呼ぶ
****「ファイル」→「開く」 // 通常の場合
CXXXApp::OnFileOpen() → OpenDocumentFile(newName) ファ...
CXXXDoc::Serialize() [→ UpdateAllViews(NULL)] ファ...
ChildFrame
CXXXView::OnDraw() 表示
*** MDIの作られる順序
- CDocument -> CChildFrame -> CView
*** MDIの破棄されるれる順序
- CView -> CChildFrame -> CDocument
- CView -> CDocument -> CChildFrame 状況によって順番が...
*** DirectX9用ライブラリ
- winmm.lib d3d9.lib d3dx9.lib dxerr9.lib dxguid.lib
- DirectX Input
-- dinput8.lib
*** イベント処理の追加
- クラスビュー → クラスを右クリック → プロパティ → ...
*** アプリケーションクラス
- アプリケーション用のドキュメントテンプレートを登録 Cre...
<pre>
// Doc, Viewクラスの初期化
rslt = initialDocView(pdoc, pviw, fname);
doc->OnNewDocument() or doc->OnOpenDocument(fna...
view->OnInitialUpdate()
// Viewクラスの表示
view->ShowWindow(m_nCmdShow);
必要ならタイマースタート or 書き換え用 OnDraw()が随時...
</pre>
*** BMP
- Gimp を使用してアイコンを作成する場合は,「互換性のオプ...
** 俺流 MFC(MDI)プログラミング手順
**** リソースのメニューを作る.(ID)
- 「リソースビュウ」の「Menu」からメニュー用のCXXXAppのメ...
****「表示」→「クラスウィザード」または,「リソースビュウ...
- ボタンで「クラスウィザード」を選び,CXXXAppにメッセージ...
-- (例:ON_COMMAND(ID_FILE_WIZ3D, OnFileWiz3d))
- 処理関数のあるファイル内では Resource.h をインクルード
**** 新しいウィンドウを作る場合は,CXXXAppでテンプレート...
**** 新しいクラスの作成
- ワークスペースの「クラス表示」から「クラスの新規作成」...
- ビュウクラスを生成(基本クラスを指定する)
- 基本クラスは CDocument, CView などを選ぶ.
-- または「クラスウィザード」を選び,「クラスの追加」→「...
**** クラスを ExClass からの派生に変更
**** CXXXAppのテンプレート定義とメッセージハンドラの関数...
**** ドキュメントクラスとビュークラスの内容を書く
**** ドキュメントクラスに仮想関数 OnOpenDocument() または...
- OnOpenDocument() はクラスウィザードで作成
<pre>
CExDocument
// データを既に持っている場合.hasViewData==TRUE
doc.OnNewDocument() : MakeViewData();
// ファイルをオープンしてデータを読み込む.
doc.OnOpenDocument() : ReadDataFile() → MakeViewD...
ExMSGraph<Word> msGraph; // 読み込みデータ(既にも...
ExCmnHead cmnHead; // 表示用の View に渡すデ...
</pre>
**** ビュークラスに仮想関数 OnInitialUpdate() を書く.
- OnInitialUpdate() はクラスウィザードで作成
**** 処理の流れ
<pre>
ID_FILE_WIZ3D → OnFileWiz3d() → CreateDocFrmView() → ...
...
...
...
...
→ CreateDocFrmViewError()
→ ループバック
</pre>
#br
終了行:
* MFC
** Devel
*** 新規プロジェクト
- プロジェクト:MFCアプリケーショ
- シングルアプリケーション
- Unicode オン
- スタイル切り替え オフ
- スタティックライブラリ
- 複合ドキュメントサポートなし
*** Locale
- UTF-8
-- setlocale(LC_ALL, ".UTF8");
- システムの Locale
-- setSystemLocale();
***ドキュメントクラス
- CXXXDoc::Seialize
-- ファイル入出力を記述.このかなからUpdateAllViews(NULL)...
- CXXXDoc::UpdateAllViews()
-- Viewを更新し,CXXXView::OnDraw()に制御を移す.
*** ビュークラス
- CScrollView, CEditView, CGtmlView
- Viewクラスからは GetDocument()関数でDocumentクラスを得...
CXXXDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_pImage = new CImage();
m_pImage->Load(pDoc->GetFileName());
- void CXXXView::OnDraw(CDC* pDC) MFCでは OnPaint()は...
*** メインフレームクラス
*** アプリケーションクラス
- CXXXApp::InitInstance()
-- クラスが生成されるとまずこの関数が呼ばれる
- CXXXApp:OnFileOpen() ファイルのオープン処理
-- DoPromptFileName() ダイアログ
-- OpenDocumentFile(newName) が呼ばれる
- CXXXApp::OpenDocumentFile()
-- Doc, Viewクラスを生成し,CXXXDoc::Serialize() を呼ぶ
****「ファイル」→「開く」 // 通常の場合
CXXXApp::OnFileOpen() → OpenDocumentFile(newName) ファ...
CXXXDoc::Serialize() [→ UpdateAllViews(NULL)] ファ...
ChildFrame
CXXXView::OnDraw() 表示
*** MDIの作られる順序
- CDocument -> CChildFrame -> CView
*** MDIの破棄されるれる順序
- CView -> CChildFrame -> CDocument
- CView -> CDocument -> CChildFrame 状況によって順番が...
*** DirectX9用ライブラリ
- winmm.lib d3d9.lib d3dx9.lib dxerr9.lib dxguid.lib
- DirectX Input
-- dinput8.lib
*** イベント処理の追加
- クラスビュー → クラスを右クリック → プロパティ → ...
*** アプリケーションクラス
- アプリケーション用のドキュメントテンプレートを登録 Cre...
<pre>
// Doc, Viewクラスの初期化
rslt = initialDocView(pdoc, pviw, fname);
doc->OnNewDocument() or doc->OnOpenDocument(fna...
view->OnInitialUpdate()
// Viewクラスの表示
view->ShowWindow(m_nCmdShow);
必要ならタイマースタート or 書き換え用 OnDraw()が随時...
</pre>
*** BMP
- Gimp を使用してアイコンを作成する場合は,「互換性のオプ...
** 俺流 MFC(MDI)プログラミング手順
**** リソースのメニューを作る.(ID)
- 「リソースビュウ」の「Menu」からメニュー用のCXXXAppのメ...
****「表示」→「クラスウィザード」または,「リソースビュウ...
- ボタンで「クラスウィザード」を選び,CXXXAppにメッセージ...
-- (例:ON_COMMAND(ID_FILE_WIZ3D, OnFileWiz3d))
- 処理関数のあるファイル内では Resource.h をインクルード
**** 新しいウィンドウを作る場合は,CXXXAppでテンプレート...
**** 新しいクラスの作成
- ワークスペースの「クラス表示」から「クラスの新規作成」...
- ビュウクラスを生成(基本クラスを指定する)
- 基本クラスは CDocument, CView などを選ぶ.
-- または「クラスウィザード」を選び,「クラスの追加」→「...
**** クラスを ExClass からの派生に変更
**** CXXXAppのテンプレート定義とメッセージハンドラの関数...
**** ドキュメントクラスとビュークラスの内容を書く
**** ドキュメントクラスに仮想関数 OnOpenDocument() または...
- OnOpenDocument() はクラスウィザードで作成
<pre>
CExDocument
// データを既に持っている場合.hasViewData==TRUE
doc.OnNewDocument() : MakeViewData();
// ファイルをオープンしてデータを読み込む.
doc.OnOpenDocument() : ReadDataFile() → MakeViewD...
ExMSGraph<Word> msGraph; // 読み込みデータ(既にも...
ExCmnHead cmnHead; // 表示用の View に渡すデ...
</pre>
**** ビュークラスに仮想関数 OnInitialUpdate() を書く.
- OnInitialUpdate() はクラスウィザードで作成
**** 処理の流れ
<pre>
ID_FILE_WIZ3D → OnFileWiz3d() → CreateDocFrmView() → ...
...
...
...
...
→ CreateDocFrmViewError()
→ ループバック
</pre>
#br
ページ名: