「MFC 単純なドキュメント-ビューアプリケーションの作成」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==MFC 単純なドキュメント-ビューアプリケーションの作成== {{category MFC}} {{amazon|4891000503}} *MFC ドキュメント *MFC ドキュメン…」) |
|||
1行目: | 1行目: | ||
− | ==MFC 単純なドキュメント-ビューアプリケーションの作成== | + | ==[[MFC 単純なドキュメント-ビューアプリケーションの作成]]== |
− | + | [[Category:MFC]] | |
{{amazon|4891000503}} | {{amazon|4891000503}} | ||
− | *MFC ドキュメント | + | *[[MFC ドキュメント]] |
− | *MFC ドキュメントとビューの分離 | + | *[[MFC ドキュメントとビューの分離]] |
===概要=== | ===概要=== | ||
*複数のビューは不要だが、アプリケーションフレームワークのファイルサポートは利用したいような場合 | *複数のビューは不要だが、アプリケーションフレームワークのファイルサポートは利用したいような場合 | ||
− | *このような場合[MFC ドキュメントとビューの分離] | + | *このような場合[[MFC ドキュメントとビューの分離|UpdateAllViewsとOnUpdate関数については考慮する必要はない]] |
*以下の手順で開発を行う。 | *以下の手順で開発を行う。 | ||
2020年2月16日 (日) 04:29時点における最新版
目次
MFC 単純なドキュメント-ビューアプリケーションの作成
概要
- 複数のビューは不要だが、アプリケーションフレームワークのファイルサポートは利用したいような場合
- このような場合UpdateAllViewsとOnUpdate関数については考慮する必要はない
- 以下の手順で開発を行う。
派生ドキュメントクラスのヘッダーファイル内に宣言を行う
- これらのデータメンバはアプリケーション内での一時的なデータ記憶場所となる
- データメンバをパブリックにするか、派生ビュークラスをドキュメントクラスのフレンドとして宣言することができる
派生ビュークラスの中でOnInitialUpdate仮想関数をオーバーライドする
- ドキュメントデータが初期化されるかディスクから読み出された後でこの関数を呼び出す
- OnInitialUpdateはビューを更新して、現在のドキュメントデータが反映されるようにする
派生ビュークラスからドキュメントにアクセス
- 派生ビュークラスの中でウィンドウメッセージハンドラ、コマンドメッセージハンドラ、OnDraw関数それぞれが、GetDocumentを使ってドキュメントオブジェクトにアクセスすることで、ドキュメントデータメンバを直接読み書きできるようにすうr。
イベントシーケンス
アプリケーションの開始
- CMyDocumentオブジェクトの生成
- CMyViewオブジェクトの生成
- ビューウィンドウの生成
- CMyView::OnCreateの呼び出し
- CMyDocument::OnNewDocumentの呼び出し
- CMyView::OnInitialUpdateの呼び出し
- ビューオブジェクトの初期化
- ビューウィンドウの無効化
- CMyView::OnDrawの呼び出し
ユーザーによるデータの編集
- CMyView関数がCMyDocumentデータメンバを更新
ユーザがアプリケーションを終了
- CMyViewオブジェクトの破棄
- CMyDocumentオブジェクトの破棄
CFormViewクラス
- モードレスダイアログウィンドウの多くの機能を備えている
- CDialogから派生するクラスと同様、フレームの特性や複数のコントロールを定義するダイアログリソースに関連付けられる
- 自分自身に含まれるコントロールから通知メッセージを直接受け取る
- コマンドメッセージはアプリケーションフレームワークから受け取る
- CDailogとは異なり、フレームのメインメニューやツールバーから簡単にビューを制御できる
© 2006 矢木浩人