[スレッド全体]

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:作業用のポインタ。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]