VC++でeditboxへ出力


ぺす  2005-11-27 20:44:09  No: 59822  IP: 192.*.*.*

MFCのダイアログベースでプログラムを作っているのですが,
Unicodeの文字をeditboxで出力するにはどうしたらいいのでしょうか?
wprintfとかあることはわかったのですが,
editboxへ出力したいのですが,方法がわかりません.
わかる人がいれば,ぜひ教えてください。

編集 削除
Blue  2005-11-27 21:15:37  No: 59823  IP: 192.*.*.*

Shift_JISコードの文字列を通常表示しているのならば、
Uniocde文字列をShift_JIS文字列に変換させるしかないです。

どのようにして、ファイルを読んでいるのかが不明ですので、
どのようにしているのかを明記してください。

編集 削除
ぺす  2005-11-27 21:51:47  No: 59824  IP: 192.*.*.*

文字はchar型の配列rdBufに格納されるようになっています.
今,SetDlgItemTextWというものがあることを知ったので,
それを使うために,
char rdBuf[516];
CString str;
 str = rdBuf;
SetDlgItemTextW( IDC_EDIT1, str);

としたのですが,
error C2660: 'SetDlgItemTextW' : function does not take 2 parameters

となってしまいます.私はVC++初心者なので,質問もおかしいところがあるかとは
思いますが,もしわかれば,よろしくお願いします。

編集 削除
ガッ  2005-11-27 23:38:38  No: 59825  IP: 192.*.*.*

うーん…とりあえずSetDlgItemTextW()の引数を確認してみては?

編集 削除
Blue  2005-11-28 00:01:39  No: 59826  IP: 192.*.*.*

char型とwchar_t型の違いを調べてみてください。

それと、
> Shift_JISコードの文字列を通常表示している
のかどうかの解答をください。

編集 削除
PATIO  2005-11-28 12:03:04  No: 59827  IP: 192.*.*.*

動かしている環境がWin2000とかWinXPとかならUNICODEを扱うプログラムとして
作成すれば、そのままUNICODEが表示できます。但し、これだとSJISはUNICODEに
変換しないと表示できなくなります。
特に何も指定しないでプログラムを作成している場合はUNICODEを扱うプログラムとして
作成されていないのでSJISが表示できてUNICODEが表示できない状態です。
Blueさんの「Shift_JISコードの文字列を通常表示しているかどうか」という話は
正にこの部分のことを訊いておられると思います。

ちなみにCStringが与えられた文字列をSJISとUNICODEのどちらで扱うかと言うのもUNICODEを扱うプログラムとして作成したかどうかで変わります。
なのでその辺の内情まできちんと把握して使わないとうまく行きません。
この辺に関してはHELP等でTCHARに関連する部分の項目を調べて呼んでみた方がいいです。
何事も基本知識は大切です。

編集 削除