【问题标题】:How to insert text into my Rich Edit Control in VS2010?如何在 VS2010 中将文本插入到我的富编辑控件中?
【发布时间】:2017-07-28 09:33:26
【问题描述】:

我已经回答了这个问题: How to insert text to rich edit control in Win32 while preserving any previous formatting

我尝试做他所做的事情,但是我遇到了我的 SendMessage 没有采用相同数量的参数的错误。

看了这个之后:https://msdn.microsoft.com/en-us/library/t64sseb3(v=vs.100).aspx, 我想并不是所有的 [SendMessage] 都是一样的——也就是说 VS2010 中的 SendMessage 不带 hWnd 参数。

所以...我卡住了...请帮助>_

编辑:我做了我的研究......恐怕我只是在寻找错误的地方或不知道如何去做。从昨天开始我就一直在这......

【问题讨论】:

  • 所有 SendMessages 都是平等的,但有些 SendMessages 比其他的更平等
  • 那么如何在 vs2010 中将文本附加到富编辑控件?
  • SendMessage有两个方法:全局命名空间中的Windows API接口,以及CWnd的MFC实现部分。后者不需要显式的窗口句柄。如果没有确切的错误信息,这个问题就不是很有用,很难。
  • 这正是我所需要的。谢谢。

标签: c++ visual-studio-2010 mfc richedit


【解决方案1】:

所以,我今天确切地了解了它们的不同之处。 特别感谢 IInspectable。

范围。

我使用的 SendMessage 是使用 3 个参数的 MFC 版本。

SendMessage(message, wParam, lParam);

但我需要一个有 4 个参数的版本 - 这是 WINAPI 版本。

..节拍..

为了能够使用 WINAPI,我必须在函数调用前添加范围解析运算符 (::)。见下文:

::SendMessage(rchWnd, EM_REPLACESEL, 0, (LPARAM)stringtoappend);

在那之后,我很高兴能够将文本附加到我的富编辑控件(是的!)。 所以...我希望这个问题能帮助到那里的人。

和平...出来^^v

【讨论】:

  • 你为什么要使用SendMessage?只需调用方法CRichEditCtrl::ReplaceSel(),例如。 G。 m_richEdit.ReplaceSel(stringtoappend);
  • 呃......我不敢相信我只是发现了这个......这确实更适合我的目的......谢谢
  • 另一方面,如果我从父窗口访问对话框,我不需要发送消息吗?
  • 更简洁的方法是在对话框中添加一个方法,例如CMyDialog::AppendText(const CString& stringToAppend) { m_richEdit.ReplaceSel(stringToAppend); }。然后就可以从父窗口调用这个方法了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多