度々すみません、文字コードに弱々なキットです。
下の方で質問させて頂いた件の続きで、質問させて欲しいです。
プロジェクトの設定をUnicodeにして、色々と試行錯誤している
のですが
WCHAR a[ 10 ];
WCHAR b[ 10 ];
CString c;
a[ 0 ] = _T( 'µ' ); // 181 Lのミュー
a[ 1 ] = 0x00;
SetWindowText( a );
GetWindowText( b, 10 );
GetWindowText( c );
とし、181 Lのミュー文字をRichEditにセットした後取得すると
bもcも956 L のミュー文字(単位の方)が帰ってきてしまいます。
フォントの絡みもあるのかな?と思い、RichEditで GetDefaultCharFormat()
で取得したフォントはMS Shell Dlgでした。
SetWindowText, GetWindowTextを用いた際に正しく入れた文字列
が帰ってくる様にするにはどうしたら良いのでしょうか?
よろしくお願いいたします。
> ミュー文字(単位の方)が帰ってきてしまいます。
間違いました。
マイクロ(181 L:単位の方)をSetWindowTextして、GetWindowTextすると
ミュー(956 L:ギリシャ文字の方)が返ってきてしまいます。
直接 SetWindowText( _T( ミュー(単位の方) ) );
としてもGetするとやはり956 Lが返ってきてしまいます。
その後悪戦苦闘しているのですが、試しに ListBox, Button, EditBoxにて
試して見たのですが、全部正しい文字列が返ってきます。
Rich Editだけ、マイクロを入れるとミューが返ってきてしまいます(涙)
Rich Editに対して何らかの特殊な宣言をしないと駄目なのでしょうか?
***
m_Lst.AddString( Lμ, µ );
m_Lst.GetText( 0, csString );
m_Edt.SetWindowTextW( Lμ, µ );
m_Edt.GetWindowTextW( csString );
m_RichEdt.SetWindowTextW( Lμ, µ );
m_RichEdt.GetWindowTextW( csString );
m_Btn.SetWindowTextW( Lμ, µ );
m_Btn.GetWindowTextW( csString );