
はじめまして。
環境はVC++6.0 XPです。
MFCでのあるプログラムの中で
CWnd* pWnd = GetDlgItem( IDC );//EditBox
pWnd->SetWindowText( hoge);
SetWindowText( hoge );//hogeは文字列が入った変数
というコードがあるのですが、
このhogeの中にはハングル文字(韓国語)が入っていており、エディットボックスにはちゃんと韓国語が入っているのですが、ウィンドウのタイトルバーには?が入っていてちゃんと表示されていません。
どうすれば表示できるのか教えてください。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>設定でプリプロセッサ定義で_UNICODEがあります。
http://rararahp.cool.ne.jp/vc/vctips/unicode.htm
の
■ Unicode対応のプロジェクトにする
としてもダメでしょうか?
それとOSは何でしょうか?
ちなみに、VS2005 Vista 環境では
wchar_t hoge[] = {0xc11c,0xc6b8,0x0000};
this->SetWindowText(hoge);
はちゃんと出ました。
# VC6では無理なのか?
この回答への補足
>Unicode対応のプロジェクトにする
としてもダメでしょうか?
これを行なっているのですが、表示されないです。
http://rararahp.cool.ne.jp/vc/vctips/unicode.htm内の
>「プロジェクト」→「設定」→「リンク」→「アウトプット」の
「エントリポイントシンボル」にwWinMainCRTStartupと書き込む。
(これをやらないと_WinMain@16は未解決ですとコンパイルエラーになります)
これを行なわなくてもエラーにはならなくプログラム実行でき、これを行なうと、下のデバッグ表示画面にエラーではないのですが色々と表示されて、プログラムが立ち上がらない状態です。
>それとOSは何でしょうか?
Windows XPです。
新規のプロジェクトを作成してやってみたら、ちゃんと表示されていました。
となるとそのプロジェクトのプログラムには何か問題があるみたいですかね。
よくみたら、表示できないプログラムのほうのプロジェクトは
MFC AppWizard(dll)で作成しています。
dllだから表示ができないということなのでしょうか?
No.1
- 回答日時:
プロジェクトの文字セットがマルチバイト文字セットになっているのではないでしょうか?
(VC++6.0はデフォルトのコンパイルオプションはマルチバイトセット)
Unicodeで受け取ってUnicodeで渡すようなコードにしないと、
(OSが?)日本語環境ではCP932(=Shift_JIS)で表現できない文字は表示できないし、情報が落ちたりします。
今からUnicodeに変更できるのであれば、プロジェクトの設定を変更するほうがよいでしょう。
(その代わり、
CString s = "abc";
のような記述は _T マクロを、charでやり取りしているところをTCHARにするのかの検証が必要になります。)
目的が質問に書かれているのみであれば、そこだけ~Wを使うように変更するとできるでしょう。
(他にテキストボックスの文字を使っていろいろやる場合は現実的ではない。)
>pWnd->SetWindowText( hoge);
// Getではない?
wchar_t hoge[256]; // サイズは適当。(GetWindowTextLengthWで取得して、+1のサイズでnewするとサイズを決め打ちにしなくてもよい。)
::GetWindowTextW(pWnd->GetSafeHwnd(), hoge, _countof(hoge));
::SetWindowTextW(this->GetSafeHwnd(), hoge);
この回答への補足
設定でプリプロセッサ定義で_UNICODEがあります。
wchar_t hoge[] = {0xc11c,0xc6b8,0x0000};//文字コードはハングル文字
::SetWindowTextW(this->GetSafeHwnd(), hoge);
このように直接ハングル文字のコードをwchar_tに入れて、放っても、??が表示されます。
エディットボックスには表示されるのにウィンドウのタイトルバーには表示されない状態です(^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
エディットボックスのフォントを変えたい
C言語・C++・C#
-
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
-
4
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
5
MFCでのコンボボックスについて
C言語・C++・C#
-
6
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
7
VC++にてボタン等のサイズ取得
C言語・C++・C#
-
8
CString から LPCTSTRの型に変換
C言語・C++・C#
-
9
VC++から引数付きexeファイルの実行
C言語・C++・C#
-
10
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
11
VC++2010 MFC サイズの最大化について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
ActiveXobjectが作成できない
-
functionから別のfunctionを実...
-
JavaScriptとHTMLの課題です
-
javascriptで複数キーワード検...
-
<a>タグのテキストを取得
-
idを使わずにonclickで自身の要...
-
HTML:Tableタグに対し、JavaScr...
-
JavaScriptで日付を取得したいです
-
VBAでIEのボタンを押してメッセ...
-
C#OpenCv V4にのエラーに関する...
-
画像上のクリックした場所が分...
-
マウスでポイントすると説明を表示
-
jQueryの :not() .not() が有効...
-
javascriptでスロットゲームを...
-
【javascript】正規表現で括弧...
-
JavaScriptにおける[] とか :...
-
ジェネレーターの作り方
-
html javascript リンク先アド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTTPSのとき":"が"%3A"ではなく...
-
ASP+アクセスでのSQLコメントに...
-
javascriptで文字挿入でtoggle...
-
同じ型【ハイフンと数字】だけ...
-
hoge の謎
-
Excel VBA の ChangeFileAccess
-
Boolean型配列中のTrueの有無を...
-
ボタンをクリックすると数が増...
-
【Jquery】changeイベント毎にa...
-
【正規表現】【javascript】CR...
-
confirmの連続?
-
ifreamをリロードしたい
-
Vb.netのグローバル変数の宣言...
-
バイナリファイルから文字列を...
-
構造体を引数で関数へ渡す
-
ひとつ上の階層にアクセスさせ...
-
JQueryの繰り返し処理が動かな...
-
複数ファイルで使うグローバル...
-
static constメンバ変数(配列)...
-
アンカーリンクをクリックさせ...
おすすめ情報