c++ - MFC 中的 CEdit 和 GetwindowText

标签 c++ visual-studio mfc

我在对话框中添加了一个简单的 Cedit 控件,并有一个 OnEnChangeEdit 回调。我正在尝试检索在框中键入的文本,但只能获取在下面调用 printf 时键入的第一个字符:

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

如果有帮助的话,我正在使用 Unicode 字符集进行编译。

最佳答案

_cprintf 需要 ansi 字符串。如果您使用 unicode,那么它将在第一个字符处停止,因为第二个字节将为空。

使用 _tcprintf 来代替,当您构建为 unicode 时,它​​会期望宽字符串。

关于c++ - MFC 中的 CEdit 和 GetwindowText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10332266/

相关文章:

c++ - std::ios_base::ios_base(const std::ios_base&) 是私有(private)的

c++ - 编译使用 curl 的代码时在 C++ 中出现错误

c - Visual Studio 和 C 项目上的运行之间不一致

c++ - CRichEditCtrl 获得焦点时全选文本

c++ - 如何释放在子对话框中创建的 CWin 对象以避免内存泄漏

c++ - 如何在MFC中创建 "CArray<CArray<CString>>& results"?

c++ - 为什么将函数作为 &name 和 name 传递会给出不同的指针?

c++ - GCC: template previously defined 错误

visual-studio - 我能做些什么来使 "help"在 Visual Studio 2008 中加载得更快吗?

visual-studio - 安装期间 Microsoft Visual Studio 2015 Shell(最小) fatal error