【发布时间】:2019-04-16 21:40:30
【问题描述】:
我正在尝试在整个程序中创建某种日志记录系统,我可以从线程中将文本添加到 GUI 中的丰富编辑框。我对这个堆栈不是很熟悉,但是从阅读中意识到你无法访问函数并且必须使用控制消息来执行此操作。
我正在尝试这样的事情:
CString ExampleMessage("hi");
HWND hEdit = GetDlgItem (m_pMainWnd->GetSafeHwnd(),IDC_RICHEDIT22);
int ndx = GetWindowTextLength (hEdit);
SetFocus (hEdit);
SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)(LPCTSTR)ExampleMessage );
但是似乎没有消息出现。有没有办法在线程中获取 CRichEditCtrl 及其底层函数?我假设不是。
谢谢!
【问题讨论】:
-
抱歉,这看起来全错了。你没看文档吗?
EM_SETSEL设置选择,而不是文本,LPARAM也不是字符串!当然,它不起作用。此外,不需要设置焦点。 -
How to change/append the text of edit control 的可能重复 - 与编辑控件相同的概念,调用
SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx); SendMessage(hEdit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR)text);