VisualStudio2005 C++、マルチバイト文字セットでWindowsアプリ
ケーションを作っています。動作環境は、WindowsXP SP3 (x86)。
モーダルダイアログに貼り付けたエディットコントロールでは、
MicrosoftIMEStandard2002で変換確定した文字(例えばハート
(U+2665))が表示されるので、GetWindowTextW()でそのユニコード
文字列を取得できるのですが、
モードレスダイアログに貼り付けたエディットコントロールでは、
変換文字列が'?'にコンバートされて表示されてしまいます。
コピー&ペーストでは、Unicode文字も表示できるので、
IMEの変換後の処理がうまくいっていないと思うのですが、
どのようにすれば、変換確定しても'?'にコンバートされずに
文字列が表示できますでしょうか?
お教えください。よろしくお願いします。
(むかしつくったアプリのため、Unicodeでビルドするには
修正が多いので、マルチバイトのビルドでやりくりしたいのです。)
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
プロジェクトのプロパティで、DebugとReleaseの両方にマルチバイトが設定されていますか?
されていなかったら次の方法を試してみてください。
プロジェクトのプロパティを開き「構成プロパティ」下の「全般」を選び、右側で「文字セット」をマルチバイトに変更。2008ですが2005でも同じだったと思います。
この回答への補足
#defineマクロの切り分けでいくつかの異なるビルドを作成するため、Debug, Release以外の構成を作成しておりました。
全ての構成でマルチバイトセットに構成し、ビルドクリーン⇒ビルドしたのですが、状況は変わらず、です。
プロパティでの文字セットの変更は、コンパイル時のコマンドラインに、#define UNICODE / #define _UNICODE相当のオプションがつく以外に何かあるのでしょうか?
モーダルダイアログの方は、もともとのソースから修正なしでDialogBoxParam()で作成、モードレスダイアログの方は、CreateDialogParamW()に修正して、関連しそうなAPIをUnicode版に置き換え、とやっています。
シンプルなサンプルを作って確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- C言語・C++・C# VisualStudioのソースコードで漢字を使いたい 4 2022/05/21 10:16
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- その他(パソコン・周辺機器) WINDOWS11 IMEの日本語入力で困っています 4 2023/04/29 19:24
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetws関数で読み込んだUNICODE...
-
VC++ マルチバイト文字とUniCod...
-
外字を削除したい
-
PHP 日付フォーマット
-
数値をASCII文字にする方法につ...
-
カンマの含まれる文字列の数値...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
JAVA System.out.println の ...
-
ソースコードの1行が長いとき...
-
jsp 改行コードで改行させて表...
-
LaTeX: captionの中で改行した...
-
全角括弧と全角読点の間隔を狭...
-
改行について
-
emacsの自動改行+インデントに...
-
2バイトローマ数字小文字につ...
-
php 正規表現で、\\マークを取...
-
文字列の置換をCStringで(C++)
-
テキストボックス行の桁数を制...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値をASCII文字にする方法につ...
-
カンマの含まれる文字列の数値...
-
16進数の文字列をアスキーコー...
-
fgetws関数で読み込んだUNICODE...
-
マクロで半角を全角に
-
VB6 機種依存文字の変換
-
1バイト文字の上位4ビット・...
-
VC++ マルチバイト文字とUniCod...
-
VBA ASC関数で変換できない文...
-
preg_replaceがうまくできない
-
Perlで値が文字列か数値かを区...
-
ヌル文字とは一体何でしょうか
-
エスケープされたunicodeのデコ...
-
VB6.0 Base64のデコード方法を...
-
int temp = 0; if(isdigit(arr[...
-
フォームからPOSTした際ボーダ...
-
サロゲートペア文字の半角カナ...
-
シフトJIS⇒MIMEエンコード(RFC2...
-
ケータイの絵文字
-
HTMLエンティティ文字の変換
おすすめ情報