我的简单应用程序中有一个 RichEdit
控件,我希望用它来模拟类似控制台的显示。我希望能够有一个 x
行数(例如 300)的缓冲区,并且每当添加行时,如果新行超出,我还想删除最旧的(顶部)行阈值x
。我还希望它在添加时自动滚动到底部以显示最新行。
我一直在使用 SetWindowText
取得了一些成功,但是我想到可能有一种更有效的方法可以将文本附加到末尾并从开头删除文本,而不必替换所有文本每次都这样。这是真的吗?如果是,我该怎么办?
另外,添加新文本时如何使其自动滚动到窗口底部?
这是使用 C 语言的 Win32 API,我没有使用 RichEdit
的 MFC 版本(仅在 XP 和 Vista 上使用普通 Win32 API)。
最佳答案
要添加文本,请将所选内容设置为文本末尾 (EM_SETSEL),然后将所选内容替换为新文本 (EM_REPLACESEL)。
要滚动到底部,您可以向其发送带有 SB_BOTTOM 的 WM_VSCROLL。
关于c - 如何使用 Win32 API 来像控制台一样使用 RichEdit 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211280/