1

ファイルから取得したデータが何であれ、テキスト ボックスにテキストを表示する必要があります。

Windowsアプリケーションで特定のボタン(IDB_SHOW_BUTTON)を押すと、以下のようにしています:-

case IDB_SHOW_BUTTON:{  
   char buf[1000];  
   vReadFileFromHardisk(buf); //storing the read data of file to buffer
   SendMessage(editHwnd,WM_SETTEXT,NULL,(LPARAM)buf);//Due to this, I get junk text.
}
break;

ファイルからデータを読み取り、バッファに格納しています。ボタンをクリックするたびにジャンク テキストが表示される理由がわかりません。

SendMessageの4 番目のパラメーターを次のように変更すると、特定のボタンを押すと適切な出力が得られます。

SendMessage(editHwnd,WM_SETTEXT,NULL,(LPARAM)L"My First Edit Window");

データをbufに保存してSendMessageで送信する場合に適切なテキストを表示する方法を教えてください。

前もって感謝します。

4

1 に答える 1

2

実際の例で「L」を参照してください。Unicode を期待する関数に狭い文字列を渡しています。

次のいずれかを行う必要があります

  1. 読み込んだテキストを Unicode に変換します。これは、特にMultiByteToWideCharを使用して行うことができます。入力のエンコーディングを知る必要があります。たとえば、UTF-8 です。
  2. 狭い形式のメッセージ WM_SETTEXTA を送信して、読み取ったデータに現在のシステム エンコーディングを使用します。
  3. プログラムの設定を Unicode からマルチバイトに変更します (ただし、これは行わないでください)。

1 を強くお勧めし、プログラム全体で Unicode (別名 UTF-16) の使用に慣れることを強くお勧めします。

于 2012-05-30T11:46:04.280 に答える