VC++ 6.0 XP
ペイントを例にあげると、入力ファイルの種類は、JPEGやGIF、ビットマップ
等、ドキュメントは、複数あるとおもうのですが、どの種類の入力ファイルを指定して
も、見た目の表示は、同じなので、ビューは、単数?かのように思えるのです。
ですから、ドキュメント複数:ビュー単体という構造も扱えるように思えるのすが、こ
れができるとすると、GetDocument()でどのドキュメントが対応するのかわからないと思
うのですが、やはり、ドキュメント複数:ビュー単体という構造は、扱えるのでしょう
か?
今、VC6はおろか、MFCを使える環境がないけど、確か扱えたはず。
実際のペイントがどのように作られているかは知りませんが、
私が設計するならば複数の画像フォーマットを扱える1つのDocumentを作ります。
Viewが1つということは、各Documentの共通の部分が多いでしょうから、
Documentも1つにするのが自然かと。私の経験ではDocumentが1つでViewが複数という
ことは多かったですが、逆は一度もありません。
熱血さんが言うレベルでの複数ドキュメントなら普通にあります。
ワードは doc, txt, html, ... たくさん扱えますし、
要はドキュメントと言っているのは、ファイル形式としての
ドキュメントではなく、ドキュメントクラス内で扱うメモリ形式
でのドキュメントのことです。
だから、質問の場合であれば、JPEGやGIFであっても、
読み込んだ後は、ドキュメントクラス内では、ビットマップとして
扱うコーディングが一般的ですので、
ビットマップ形式の単一ドキュメントと言えるのではないでしょうか。
単に、「ファイルを開く」ダイアログの「ファイルの種類」リストが
たくさんあるだけ。
たいちうさん、bunさん、レスありがとうございます。
お二人とも、同じご意見のようなので、わたしもそのように設計したいと思います。
GIFの読み込みクラスとか、BITMAPの読み込みクラスとかを基本クラスにもつ
ような、ドキュメントクラスを作って、読み込みメソッドだけを条件分岐させて、内部
テーブルは、ビットマップで統一して、VIEWクラスは、それを出力するというのが
一般的ということですね。
重ねて、ありがとうございました。