ITextServices::OnTxPropertyBitsChange 方法 (textserv.h)

设置由控件) 位表示的属性 (。

语法

HRESULT OnTxPropertyBitsChange(
  [in] DWORD dwMask,
  [in] DWORD dwBits
);

参数

[in] dwMask

类型: DWORD

表示要更改的属性的位。 有关可能的位值,请参阅 dwBits 中的 TXTBIT_* 值列表。

[in] dwBits

类型: DWORD

位属性的新值。 它可以是以下任意组合。

含义
TXTBIT_ALLOWBEEP
如果 为 TRUE,则启用蜂鸣声。
TXTBIT_AUTOWORDSEL
如果 为 TRUE,则启用 AutoWordSelect 功能。
TXTBIT_BACKSTYLECHANGE
如果 为 TRUE,则后式已更改。 请参阅 TxGetBackStyle
TXTBIT_CHARFORMATCHANGE
如果 为 TRUE,则字符格式已更改。
TXTBIT_CLIENTRECTCHANGE
如果 为 TRUE,则客户端矩形已更改。
TXTBIT_DISABLEDRAG
如果 为 TRUE,则禁用拖动。
TXTBIT_D2DDWRITE
对此实例使用 Direct2D/DirectWrite,而不是 GDI/Uniscribe。
TXTBIT_D2DPIXELSNAPPED
将字形呈现到最近的像素位置。 仅当设置了D2DDWRITE时有效。
TXTBIT_D2DSUBPIXELLINES
使用子像素精度绘制线条。 在辅助文本流方向上不要像素对齐文本行、下划线和删除线 (通常是垂直) 。 仅当设置了D2DDWRITE且未设置D2DPIXELSNAPPED时有效。
TXTBIT_D2DSIMPLETYPOGRAPHY
使用简单版式呈现文本 (没有字形呈现) 。 仅当同时指定了TXTBIT_D2DDWRITE时,此值才有效。
TXTBIT_EXTENTCHANGE
如果 为 TRUE,则客户端矩形的大小已更改。
TXTBIT_HIDESELECTION
如果 为 TRUE,则文本服务对象应在控件处于非活动状态时隐藏所选内容。 如果 为 FALSE,则应在控件处于非活动状态时显示所选内容。

请注意,这意味着 TXTBIT_SAVESELECTIONTRUE

TXTBIT_MAXLENGTHCHANGE
如果 为 TRUE,则控件中文本的最大长度已更改。
TXTBIT_MULTILINE
如果 为 TRUE,则文本服务对象应在多行模式下工作。 使用 TXTBIT_WORDWRAP 值确定是将线条包装到视图矩形还是剪裁这些线条。

如果 为 FALSE,则文本服务对象不应处理来自 Enter 键的回车符/换行符,并且它应截断包含硬换行符的传入文本,该文本位于第一个换行符之前。 也可以截断使用 ITextServices::TxSetText 设置的文本,因为主机有责任在绑定到多行字段时不要使用单行控件。

TXTBIT_NOTHREADREFCOUNT
不要代表此实例引用 TLS 数据。
TXTBIT_PARAFORMATCHANGE
如果 为 TRUE,则段落格式已更改。
TXTBIT_READONLY
如果 为 TRUE,则文本服务对象不应通过用户界面接受任何编辑更改。 但是,它仍应通过 EM_SETTEXTEXEM_REPLACESELITextServices::TxSetText 接受编程更改。 此外,用户仍应能够移动插入点、选择文本并执行其他不修改内容的操作,例如复制。
TXTBIT_RICHTEXT
如果 为 TRUE,则文本服务对象应处于富文本模式。

如果 为 FALSE,则为纯文本模式。

请注意,这会影响编辑命令的应用方式。 例如,对纯编辑控件中的部分文本应用粗体会使整个文本加粗。 但是,对于富编辑控件,这只会使所选文本加粗。

TXTBIT_SAVESELECTION
如果 为 TRUE,则当控件处于非活动状态时,应保存所选内容的边界。

如果 为 FALSE,则当控件再次处于活动状态时,可以选择边界重置为 start = 0,length = 0。

TXTBIT_SCROLLBARCHANGE
如果 为 TRUE,则滚动条已更改。
TXTBIT_SELBARCHANGE
如果 为 TRUE,则选择栏宽度已更改
TXTBIT_SHOWACCELERATOR
如果设置,则加速键字符应带有下划线。

必须设置此设置才能调用 TxGetAcceleratorPos

TXTBIT_SHOWPASSWORD
显示密码字符串。
TXTBIT_USECURRENTBKG
不支持。
TXTBIT_USEPASSWORD
如果 为 TRUE,则使用 TxGetPasswordChar 获取的密码字符显示文本。

此属性上的通知可能意味着密码字符已更改,或者密码字符以前未使用过,但现在 (,反之亦然) 。

TXTBIT_VERTICAL
不支持。
TXTBIT_VIEWINSETCHANGE
如果 为 TRUE,则内插已更改。
TXTBIT_WORDWRAP
如果 TRUE 和 TXTBIT_MULTILINE 也为 TRUE,则多行控件应将线条包装到视图矩形。 如果此属性为 FALSETXTBIT_MULTILINETRUE,则行不应换行,而应进行剪裁。 应忽略视图矩形的右侧。

如果 TXTBIT_MULTILINEFALSE,则此属性不起作用。

返回值

类型: HRESULT

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

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

返回代码 说明
E_NOTIMPL
未实现。

注解

客户端矩形是文本服务对象负责绘制和管理的矩形。 主机依赖于文本服务对象来绘制该区域。 文本服务对象不得绘制该矩形以外的区域或使区域失效。 此外,当光标位于此矩形上时,主机会将鼠标消息转发到文本服务对象。 此矩形以包含窗口的客户端坐标表示。

视图嵌入是客户端矩形和视图矩形之间每一侧的空间量。 视图矩形 (也称为格式矩形) 是应设置文本格式的矩形。 有关详细信息,请参阅 TxGetViewInset

backstyle 是客户端矩形背景的样式。 它可以TXTBACK_TRANSPARENT或TXTBACK_SOLID。 请参阅 TXTBACKSTYLE

滚动条属性指示滚动条的更改:存在哪个滚动条、滚动条在无法滚动时隐藏还是禁用,以及插入点离开客户端矩形时是否启用自动滚动。

要求

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

请参阅

概念性

ITextServices

其他资源

矩形

引用

TxGetAcceleratorPos

TxGetBackStyle

TxGetClientRect

TxGetPasswordChar

TxSetText

无窗口富编辑控件