在 Windows RichEdit20W 控件中选择单词的规则

Rules for selecting a word in a Windows RichEdit20W control

在 MFC 应用程序中,我有一个包含以下内容的 .rc 文件:

IDD_PROP_TEXT DIALOGEX 0, 0, 210, 164
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif", 400, 0, 0x0
BEGIN
    CONTROL         "",IDC_EDIT,"RichEdit20W",ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL | WS_TABSTOP,1,3,207,158
END

当我在 Rich Edit 控件中双击像 first_second 这样的字符串时,我只选择了 _ 之前的第一部分或 _ 之后的第二部分,或者只是_,取决于我双击的位置。

在下面的屏幕截图中,我只是双击了 second 中的一个字符。

我想更改此行为并且 _ 不应被视为中断字符。

我该怎么做?

我在 CRichEditCtrl::SetOptions 找到了 ECO_AUTOWORDSELECTION 但它没有解释断字规则...

你应该使用 EM_SETWORDBREAKPROCEX.

使用您自己的 EditWordBreakProcEx 应该可以定义您自己的规则。

标志ECO_AUTOWORDSELECTION只是设置了双击选中单词的特性。

我不确定这是否也适用于这种情况,但阅读 this 缝隙以指向我的假定答案。