CHOOSEFONT構造体の保存方法

[戻る]
DIO 2007/01/14(日) 20:55:44
VS2005 WinXP SDK

いつもお世話になっています。
早速ですが質問です。

いま、ツールの設定データを
Get/WritePrivateProfille関数でiniファイルとして保存しています。

しかし、表題のCHOOSEFONTとLOGFONT等のフォントデータの保存に
上記関数を使うのはかなり大変だと思い、躊躇しています。

代替え案として考えたのが、
@バイトを文字列として保存する
A保存用の関数を気合入れて作る
Bsprintf、sscanfなどで、文字列として保存する

などなのですが、そこで質問します。

1.フォントを簡単にiniファイルに保存するような方法はありませんか?
2.もし無いなら皆さんはどのように保存しますか?
3.こういった場合どういった方法が標準的対応でしょうか?

以上
よろしくお願いいたします。

通りすがり 2007/01/14(日) 21:54:36
WritePrivateProfileStruct
GetPrivateProfileStruct
というAPIがありますが、使えるのかは知りません。
フォント名とかをそれぞれテキストで保存する場合が多いのではないかと思います
が、本当に多いかは知りません。

Blue 2007/01/15(月) 09:38:35
LOGFONTに関しては
>WritePrivateProfileStruct
>GetPrivateProfileStruct
を使ってINIファイルに保存/復元をしても問題ないでしょう。
(そうやった経験はあります。)

CHOOSEFONTに関しては構造体がどうなっているのか
よくご覧になればわかりますが、LOGFONT同様に
>WritePrivateProfileStruct
>GetPrivateProfileStruct
を使うのは気をつけるべき点がいくつかあります。
それは、ポインタの値やハンドルを構造体のメンバ変数として扱っている点です。
保存時には有効なポインタやハンドルであっても、復元時には無効になってしまうでし
ょう。
(必要な情報(メンバ変数)だけ書き出したほうがよさげ)

DIO 2007/01/15(月) 19:09:02
>通りすがりさん
Get/WritePrivateProfileStructで出来ましたありがとうございます。

>Blueさん
ありがとうございます。
構造体のポインタだけは読み込んだあとに
関連付けなおすようにしました。

確かにCHOOSEFONTのほうはほぼ固定なので、
必要なものだけ、読み書きします。
(不要なアドレスは危険ですもんね)

DIO 2007/01/15(月) 19:09:31
[[解決]]

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