2

ダイアログに単純なCeditコントロールを追加し、OnEnChangeEditコールバックを作成しました。ボックスに入力されたテキストを取得しようとしていますが、以下のprintfの呼び出しで入力されたものの最初の文字しか取得できません。

void MFCDlg::OnEnChangeEdit() { 
  CString s; 
  m_platformSliceOverrideEditBox.GetWindowText(s); 
  _cprintf("%s", s.GetString());
}

それが役立つ場合は、コンパイルにUnicode文字セットを使用しています。

4

1 に答える 1

2

_cprintfansi文字列が必要です。Unicodeを使用している場合、2番目のバイトがnullになるため、最初の文字で停止します。

_tcprintf代わりに、ユニコードとしてビルドするときに幅の広い文字列を期待するを使用してください。

于 2012-04-26T11:20:43.487 に答える