c++ - Visual Studio MFC Cstring 格式

标签 c++ mfc

我正在使用 Visual Studio 开发 MFC 接口(interface),但输出不正常。我使用的代码与 codeblocks 中使用的 on 相同,但这里的输出不同,我认为这是格式的原因。在我的“IDC_Values”中输入“e”和“d”的正确方法是什么?我在网上搜索了很多关于 MFC 的内容

int e[100], d[100];

CString Text;
Text.Format((LPCWSTR)L"%d \t%d", e, d);
SetDlgItemText(IDC_Values, Text);

最佳答案

CString 在 UNICODE 构建上是 CStringW,在非 UNICODE 构建上是 CStringA。所以你不应该混合宽文字和非宽文字,例如你有:

Text.Format((LPCWSTR)L"%d \t%d", e, d);
                     ^ ~~~~ this requires that CString is wide

这应该是(减去 e 和 d 是数组的事实!!):

Text.Format(_T("%d \t%d"), e, d);

现在如果你想格式化一个字符串,并将其设置为小部件,那么你必须迭代它(警告:我没有编译这段代码):

CString Text;
CString tmp;
for (size_t i = 0; i < sizeof(e)/sizeof(e[0]); ++i) {
  tmp.Format(_T("%d,"), e[i]);
  Text += tmp;
}

// here the same for d

我并不是说这是最有效的方法。

关于c++ - Visual Studio MFC Cstring 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844045/

相关文章:

C++ 使用类标记数学表达式

c++ - 事件系统的类型安全实现

c++ - 摆脱 _WIN32_WINNT 未定义。

c++ - CFile写函数

c++ - 在分层窗口的子对话框中未单击 CMFCButton

c++ - 制作点光源的最佳方法

c++ - 基于 OpenCV DFT 的卷积被移位

c++ - 使用 wxWidgets 绘制视频流

c++ - 在 C++ 中寻找搜索和替换的 chalice

C++ Windows MFC 并发 : Get thread to wait until particular state achieved