
はじめまして。
環境は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で質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript javascriptで文字挿入でtoggleみたいなのはありますか? 2 2023/02/14 21:53
- 世界情勢 韓国の言語は日本由来? 7 2022/03/30 17:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(プログラミング・Web制作) pythonのcondaコマンドの仕様について 2 2022/06/24 00:13
このQ&Aを見た人はこんなQ&Aも見ています
-
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
エディットボックスのフォントを変えたい
C言語・C++・C#
-
-
4
VC++から引数付きexeファイルの実行
C言語・C++・C#
-
5
VC++にてボタン等のサイズ取得
C言語・C++・C#
-
6
CWnd::EnableWindow()の扱い方
C言語・C++・C#
-
7
最大化と最小化ボタン
C言語・C++・C#
-
8
ラジオボタンのグループ化
C言語・C++・C#
-
9
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
10
画面を強制的に再描画させる方法
C言語・C++・C#
-
11
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
12
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
13
ビジュアルC++でボタンの有効/無効
C言語・C++・C#
-
14
MFCのメニューバーのイベント取得
C言語・C++・C#
-
15
MFCでbitmapを背景にしてstaticテキストを透過させる方法
C言語・C++・C#
-
16
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
17
リストコンロールの一行だけを太文字に(VC++)
C言語・C++・C#
-
18
C++初心者です。 debug assertion errorについて
C言語・C++・C#
-
19
CString から LPCTSTRの型に変換
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空メールの自動返信プログラム...
-
HTTPSのとき":"が"%3A"ではなく...
-
htaccessのリダイレクトがルー...
-
C# .NET DataGridView の行を追...
-
指定した スタイルの class の...
-
VC++2005EEにて不可解な挙動
-
MFCのキャプション変更
-
構造体を引数で関数へ渡す
-
Javascriptグローバル変数の値...
-
同じ型【ハイフンと数字】だけ...
-
ASP+アクセスでのSQLコメントに...
-
バイナリファイルから文字列を...
-
ボタンをクリックすると数が増...
-
Boolean型配列中のTrueの有無を...
-
window.onloadでのfunction
-
midiをランダムに再生させ...
-
JavaScript window.openで開く...
-
textareaに入力されたデータを...
-
イベントリスナーの部分を関数...
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
アンカーリンクをクリックさせ...
-
javascriptで文字挿入でtoggle...
-
ifreamをリロードしたい
-
static と externについて
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
System::Drawing::Color::XXXX...
-
MFCのキャプション変更
-
VB.NETで変数の型は自作...
-
【Jquery】changeイベント毎にa...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
window.onloadでのfunction
-
hogehogeの由来
おすすめ情報