.NET2005 VC++の環境(アンマネージ)にてMSFlexGridの使用方法
について教えてください。
たとえば、1行3列目のセルに寸法1という文字を設定しようとする
場合、以下のようにすると日本語が化けて表示されてしまいます。
m_grid.put_TextMatrix(1,3,寸法1);
日本語を表示するにはどのようにすればよいのでしょうか?
環境が無いので、はずしているかもしれませんが、
m_grid.put_TextMatrix(1,3,L寸法1); とか、
m_grid.put_TextMatrix(1,3,TEXT(寸法1)); を試してみては?
これが原因だとするとコンパイルエラーになるような気がするので
自信がないのですが、他の回答が付くまでに解決する可能性があるかも。
> m_grid.put_TextMatrix(1,3,L寸法1);
コンパイルエラーとなります。
なぜならプロトタイプが(long, long, LPSCSTR)だからです。
m_grid.put_TextMatrix(1,3,TEXT(寸法1));
UNICODEではなくマルチバイトで使用しているので、
結局寸法1と同じ結果で化けてしまいます。
貴方と同じ環境の、同じ境遇の方を待つしか
ありませんが
m_grid.put_TextMatrix(1,3,_T(寸法1));
とかはどうですか?
必要なら直前で文字列をコンバートで。
ごめ、「なぜなら~」以降を読んでませんでした。
最後に書きましたが
WideCharToMultiByteでコード変換をすればよいかと
化けた画面はどう表示されているのでしょうか。
Ascii文字も混ぜた文を表示した際に、Ascii文字が表示できるならば、フォント
等も疑う必要があると思います。
> Ascii文字も混ぜた文を表示した際に、Ascii文字が表示できるならば、フォント
> 等も疑う必要があると思います。
Ascii文字を混ぜた場合、ASCII文字だけはちゃんと表示されるので、
確かにフォントが怪しいですね。それで以下のようにフォントを設定
したのですが、やはり結果は変わりませんでした。
字体は変わったので、フォントの設定はできているように思えるのですが。
m_grid.put_FontName(MS 明朝);
フォント設定が間違っているのでしょうか?
プロパティのFont属性を日本語フォントに設定したら、うまく表示できました。
「ぬ」さんのアドバイスのおかげです。
どうもありがとうございました。