EDITWORDBREAKPROCW 回调函数 (winuser.h)

EM_SETWORDBREAKPROC 消息一起使用的应用程序定义的回调函数。 多行编辑控件或富编辑控件调用 EditWordBreakProc 函数来中断文本行。

EDITWORDBREAKPROC 类型定义指向此回调函数的指针。 EditWordBreakProc 是应用程序定义的函数名称的占位符。

语法

EDITWORDBREAKPROCW Editwordbreakprocw;

int Editwordbreakprocw(
  [in] LPWSTR lpch,
  [in] int ichCurrent,
  [in] int cch,
  [in] int code
)
{...}

参数

[in] lpch

类型:LPTSTR

指向编辑控件文本的指针。

[in] ichCurrent

类型:int

文本缓冲区中字符位置的索引,该索引标识函数应开始检查断字符的点。

[in] cch

类型:int

编辑控件文本中的 TCHAR 数。 对于 ANSI 文本,这是字节数;对于 Unicode 文本,这是 WCHAR 的数量。

[in] code

类型:int

回调函数要执行的操作。 此参数可以是下列值之一。

价值 意义
WB_CLASSIFY
检索位于指定位置的字符的字符类和断字符标志。 此值用于丰富的编辑控件。
WB_ISDELIMITER
检查位于指定位置的字符是否为分隔符。
WB_LEFT
查找指定位置左侧单词的开头。
WB_LEFTBREAK
查找指定位置左侧的词尾分隔符。 此值用于丰富的编辑控件。
WB_MOVEWORDLEFT
查找指定位置左侧单词的开头。 此值在 CTRL+LEFT 键处理期间使用。 此值用于丰富的编辑控件。
WB_MOVEWORDRIGHT
查找指定位置右侧单词的开头。 此值在 CTRL+RIGHT 键处理期间使用。 此值用于丰富的编辑控件。
WB_RIGHT
查找指定位置右侧单词的开头。 这在右对齐的编辑控件中非常有用。
WB_RIGHTBREAK
查找指定位置右侧的字尾分隔符。 这在右对齐的编辑控件中非常有用。 此值用于丰富的编辑控件。

返回值

类型:int

如果 代码 参数指定 WB_ISDELIMITER,则返回值为非零(TRUE),如果位于指定位置的字符为分隔符,则返回值为零(如果不是)。 如果 代码 参数指定 WB_CLASSIFY,则返回值是字符类和字符在指定位置的断字符标志。 否则,返回值是文本缓冲区中单词开头的索引。

言论

后跟换行符的回车符必须由回调函数视为单个单词。 后跟换行符的两个回车符也必须被视为单个单词。

应用程序必须通过在 EM_SETWORDBREAKPROC 消息中指定回调函数的地址来安装回调函数。

Rich Edit 1.0:Microsoft Rich Edit 1.0 仅将 ANSI 字符传回 EditWordBreakProc。 对于丰富的编辑控件,可以使用 EM_SETWORDBREAKPROCEX 消息将默认扩展断字符过程替换为 EditWordBreakProcEx 回调函数。 此函数提供有关文本的其他信息,例如字符集。

Rich Edit 2.0 及更高版本:Microsoft Rich Edit 2.0 及更高版本仅将 Unicode 字符传回 EditWordBreakProc。 因此,ANSI 应用程序将使用 WideCharToMultiByte转换 Rich Edit 提供的 Unicode 字符串,然后相应地转换索引。

注意

winuser.h 标头将 EDITWORDBREAKPROC 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)

另请参阅

EM_FINDWORDBREAK

EM_SETWORDBREAKPROC

EM_SETWORDBREAKPROCEX

EditWordBreakProcEx

其他资源

参考

SendMessage