▼ 2014/5/9 (金) 17:42:18 LR4 | |
Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0 |
[2168] Re6:不具合:「開きません」のキャンセルが存在しません |
> メッセージ本文のほうが無事なのは、MYMESSAGEBOXが本文を別のバッファにコピーしてMessageBox APIに渡しているからかも。
案の定、[共通設定]-[強調キーワード]の[整理]ボタンを押したときに
表示されるメッセージボックスで、本文のほうに同様の症状が出ました。
下記のように、CSakuraEnvironment::ExpandParameter()で
コール時に毎回ではなく、言語切替時だけLoadStringするように
変更したところ、自環境では改善しました。
Index: sakura_core/env/CSakuraEnvironment.cpp
===================================================================
--- sakura_core/env/CSakuraEnvironment.cpp (リビジョン 3706)
+++ sakura_core/env/CSakuraEnvironment.cpp (作業コピー)
@@ -90,11 +90,22 @@
const CEditDoc* pcDoc = CEditDoc::GetInstance(0); //###
// Apr. 03, 2003 genta 固定文字列をまとめる
- const wstring PRINT_PREVIEW_ONLY = LSW( STR_PREVIEW_ONLY ); //L"(印刷プレビューでのみ使用できます)";
+ static HINSTANCE s_hRsrc = NULL;
+ static wstring PRINT_PREVIEW_ONLY = L""; //L"(印刷プレビューでのみ使用できます)";
+ static wstring NO_TITLE = L""; //L"(無題)";
+ static wstring NOT_SAVED = L""; //L"(保存されていません)";
+
+ // 初回と言語切替時に文字列をロードする
+ HINSTANCE hRsrc = CSelectLang::getLangRsrcInstance();
+ if( s_hRsrc != hRsrc ){
+ s_hRsrc = hRsrc;
+ PRINT_PREVIEW_ONLY = LSW( STR_PREVIEW_ONLY );
+ NO_TITLE = LSW( STR_NO_TITLE1 );
+ NOT_SAVED = LSW( STR_NOT_SAVED );
+ }
+
const int PRINT_PREVIEW_ONLY_LEN = PRINT_PREVIEW_ONLY.length();
- const wstring NO_TITLE = LSW( STR_NO_TITLE1 ); //L"(無題)";
const int NO_TITLE_LEN = NO_TITLE.length();
- const wstring NOT_SAVED = LSW( STR_NOT_SAVED ); //L"(保存されていません)";
const int NOT_SAVED_LEN = NOT_SAVED.length();
const wchar_t *p, *r; // p:目的のバッファ。r:作業用のポインタ。
|
|