ITextServices::TxSendMessage 方法 (textserv.h)

由窗口主机用于将从其窗口发送的消息转发到文本服务对象。

语法

HRESULT TxSendMessage(
  UINT    msg,
  WPARAM  wparam,
  LPARAM  lparam,
  LRESULT *plresult
);

参数

msg

类型: UINT

消息的标识符。

wparam

类型: WPARAM

窗口消息中的 WPARAM

lparam

类型: LPARAM

窗口消息中的 LPARAM

plresult

类型: LRESULT*

消息的返回 LRESULT

返回值

类型: HRESULT

如果该方法成功,则 返回值S_OK

如果方法失败,则返回值为以下 HRESULT 代码之一。 有关 COM 错误代码的详细信息,请参阅 COM 中的错误处理

返回代码 说明
E_OUTOFMEMORY
内存不足。 已处理 NOERROR 消息,并执行了一些操作。
S_FALSE
消息未处理。 通常指示调用方应通过调用 DefWindowProc 来处理消息本身。
S_MSG_KEYIGNORED
已处理消息,但未对击键执行任何操作。

注解

请注意,两个返回值是从此函数传回的。 应从窗口过程传回的返回值是 plresult。 但是,在某些情况下,返回的 LRESULT 不包含足够的信息。 例如,若要实现在控件周围移动光标,最好知道击键 ((如右箭头) )是否已处理但忽略了 (例如,插入点已在文本) 的最右侧位置。 在这些情况下,可以通过返回的 HRESULT 返回更多信息。

识别键或字符时,WM_CHAR和 WM_KEYDOWN 应返回值S_MSG_KEYIGNORED,但鉴于当前状态无效。 例如,在以下情况下应返回S_MSG_KEYIGNORED:

  • 尝试将插入点移动到文档的开头或结尾或超出文档开头或末尾的任何击键;当它已分别位于文档的开头或结尾时。
  • 当插入点已位于最后一行时,尝试将插入点移动到下一行或超过下一行的任何击键;或 到或之前,当它已位于第一行时。
  • WM_CHAR 中插入字符的任何插入都会使插入点超过控件的最大长度。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 textserv.h
DLL Msftedit.dll

请参阅

概念性

DefWindowProc

ITextServices

其他资源

WM_CHAR

WM_KEYDOWN

无窗口 Rich Edit 控件