SaveBarState,LoadBarStateの保存先を変更するには? – プログラミング – Home

通知
すべてクリア

[解決済] SaveBarState,LoadBarStateの保存先を変更するには?


困ってます
 困ってます
(@困ってます)
ゲスト
結合: 9年前
投稿: 11
Topic starter  

SaveBarState,LoadBarStateを使って、ツールバーの情報を設定・保持しています。

この設定情報ファイルは、XPの場合はC:Windowsフォルダ内に作成されますが、これを
実行ファイルと同一フォルダに作成するようにしたいです。
それにはどうしたらよいでしょうか?

開発環境はVS2003、OSはXPです。


引用未解決
トピックタグ
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

https://msdn.microsoft.com/ja-jp/library/8d16dk62.aspx
ここに書いてありますね。
レジストリーを使えばいいのではないでしょうか?


返信引用
困ってます
 困ってます
(@困ってます)
ゲスト
結合: 9年前
投稿: 11
Topic starter  

ありがとうございます。

「lpszProfileName
状態情報が格納されている Windows レジストリに初期化 (INI) のファイルまたはキーの
セクションの名前。」

の部分ですね。
日本語がおかしくて意味が。。。(@_@;)

実際は「IDR_TOOLBAR」という文字を引数として渡しています。
が、プロジェクト全体をGrepしてもLoadBarStateとSaveBarStateでしかヒットしないんで
すよね…。

レジストリに格納されてるのかなぁと思ってregeditを起動してみたけど、そこから先が
わからず…。
もう少し詳しく教えてください。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

う--ん、
https://msdn.microsoft.com/ja-jp/library/cc429340.aspx
この中の、「Reg」がつくのがレジストリ用の関数です。

http://www.kab-studio.biz/Programing/Codian/MFCTips/07.htmlhttps://msdn.microsof
t.com/ja-jp/library/cc776231(v=ws.10).aspx
ここらへんも参考に


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

http://www.kab-studio.biz/Programing/Codian/MFCTips/07.html
https://msdn.microsoft.com/ja-jp/library/cc776231(v=ws.10).aspx
ここらへんも参考に

レジストリを使うようにしたほうが今後役に立つと思います。


返信引用
K
 K
(@K)
ゲスト
結合: 22年前
投稿: 98
 

MFC のソースを見てみると、
CFrameWnd::SaveBarState()
→CDockState::SaveState()
 →CControlBarInfo::SaveState()
と来て、CWinApp::WriteProfileString() や WriteProfileInt() が呼び出されるようで
す。

で、それらの「書き込み(読み込み)先」を変更するには、CWinApp::m_pszProfileName を
「実行ファイルと同一フォルダのINIファイル」にセットしてやればいいはずです。

CWinApp::m_pszProfileName
https://msdn.microsoft.com/ja-jp/library/xykfyy20.aspx

CFooApp::InitInstance() あたりで、
・GetModuleFileName() で自分のパス名を取得する
・そのフォルダの「foo.ini」
を設定してやればいいのではないか、と。
やり方は、↑のURL参照。


返信引用
困ってました
 困ってました
(@困ってました)
ゲスト
結合: 9年前
投稿: 7
 

>Kさん
m_pszProfileNameで検索したら対応法がわかりました。ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました