続: ギリシャ文字のショートカットファイルのResolve

[戻る]
キット 2007/03/02(金) 23:22:22
度々すみません、文字コードに弱々なキットです。

下の方で質問させて頂いた件の続きで、質問させて欲しいです。

プロジェクトの設定を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を用いた際に正しく入れた文字列
が帰ってくる様にするにはどうしたら良いのでしょうか?

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

キット 2007/03/02(金) 23:25:59
> ミュー"文字(単位の方)が帰ってきてしまいます。

間違いました。

マイクロ(181 L:単位の方)をSetWindowTextして、GetWindowTextすると
ミュー(956 L:ギリシャ文字の方)が返ってきてしまいます。

直接 SetWindowText( _T( "ミュー(単位の方)" ) );
としてもGetするとやはり956 Lが返ってきてしまいます。

キット 2007/03/03(土) 15:52:17
その後悪戦苦闘しているのですが、試しに 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 );

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