ダイアログベースのシリアル化

[戻る]
nakamura 2007/02/07(水) 11:41:45
ダイアログベースのプログラミングを作成しているのですがダイアログにリストとエデ
ィットコントロールを作成しCstringArrayでリストの各項目とそれをクリックしたとき
の説明分を保存したいのですが、この2つの変数のシリアル化の仕方がわかりません。
現在はダイアログクラス内に2つの配列を保存してシリアル化しようとしているのですが
ダイアログにはIMPLEMENT_SERIALマクロが設定できないのどうすればよいのでしょう
か。
 それともダイアログクラスの外にデータ用のクラスを作成しそこでシリアル化してか
らダイアログのほうに渡すようにすればよいのでしょうか
 わかる方おられましたら、ご教授いただけますようよろしくお願いします。
開発環境は
 VC++ .NET2003 MFC Win XP SP1です

通りすがり 2007/02/09(金) 03:30:51
fwrite とかではダメですか?

PATIO 2007/02/09(金) 11:27:56
ダイアログクラスに元々シリアル化は無いと思います。
そもそもダイアログをシリアル化する事自体が変だと思いますし。
シリアル化したいのは項目と説明文のデータなのですから
オブジェクト指向的に考えるならデータ用のクラスを作成するのが筋でしょう。
そこクラスをシリアライズ可能に実装すればいい。
ただ、CArchiveを使ったシリアライズにこだわる理由が特に無いなら
単純にSaveとLoadの機能を作成してCStdioFileクラスで直接出力とかでも
良いような気はします。
要は、再度読み込んで元の状態が再現できるような形式でファイルに書き出す事と
ファイルの内容を読み込んで元の状態を再現する事が出来ればいいだけの話ですから。

nakamura 2007/02/10(土) 18:41:08
[[解決]]
通りすがりさん、PATIOさん返信ありがとうございます。
いわれてみれば、そのとおりで恥ずかしい限りです。
そこで、今回はシリアライズの復習もかねてPATIOさんにご指摘いただいたように外部に
データ用のドキュメントクラスを作成してそこでシリアライズを行うことにしました。
もうちょっとがんばってみます。
どうもありがとうございました

古いスレッドには追加発言できません。