EDITWORDBREAKPROCA 回调函数 (winuser.h)

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

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

语法

EDITWORDBREAKPROCA Editwordbreakproca;

int Editwordbreakproca(
  [in] LPSTR 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 [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)

另请参阅

EM_FINDWORDBREAK

EM_SETWORDBREAKPROC

EM_SETWORDBREAKPROCEX

EditWordBreakProcEx

其他资源

引用

SendMessage