c++ - 如何将许多格式字符串打印到窗口中?

标签 c++ windows winapi

成功解决此问题后how to print a format string into window ,我又遇到了另一个问题。

如果有很多格式字符串,如何将它们打印到窗口中?例如下面:

sprintf(buf, formatString-1...);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buf);
...
sprintf(buf, formatString-2...);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buf);
...
sprintf(buf, formatString-3...);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buf);
...

请注意,只有 formatString-3 被打印到窗口中,而我想将它们全部打印到窗口中。怎么做到的?(PS:请不要使用buf concatenate)谢谢!~

最佳答案

您是否尝试生成控制台样式或日志样式的窗口,其中包含多行文本,一行接着一行?

如果是这样,最简单的方法是选择一个可以为您执行此操作的控件。像静态(通常用于标签)之类的东西通常一次只对一个字符串有用。如果你想显示多行输出,你的两个主要选择是:

  • 列表框控件:使用 LB_ADDSTRING 将项目添加到末尾。 (您可能希望使用 LB_SETCURSEL 或类似的方法来选择最后一项,以便在将项目添加到末尾时,它会滚动以显示最后一项。)

  • 只读多行编辑控件:使用 the technique outlined here on MSDN 将文本追加到末尾.请注意,使用这种方法,您需要自己提供“\r\n”以创建新行。

关于c++ - 如何将许多格式字符串打印到窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892323/

相关文章:

c# - Win32 资源编辑器库?

c++ - Windows 10 夜灯是如何实现的?

C++:为 std::sort 提供模板化比较函数

c++ - 这个条件是如何被解析的?

python - 为什么 Nose 测试会在 Windows 8 上留下孤立的 PhantomJS 进程?

windows - VS2010如何制作输出以显示已构建项目的计数器

android - 为什么从 windows 和 mac 构建时 android apk 大小不同

c++ - union 是否始终具有默认值零?

c++ - 有可能将两个从 unsigned int 转换为负 float 的 float 相除吗?

c++ - 如何动态使用 GetProcAddress