MaskedEdit 控件

MaskedEdit 控件是一个编辑字段控件,包含控件的文本找到中的掩码。 可以通过在 Control 表的 Property 列中输入属性名称,将该控件与某个字符串值属性相关联。

可以使用 MaskedEdit 控件为用户输入信息(如电话号码或产品 ID 代码)创建模板。 例如,用户可以通过 MaskedEdit 控件输入 PIDKEY 属性,该控件是通过将 PIDTemplate 属性设置为如下所示的字符串而指定的:

12345<### -%%%%%%%>@@@@@

字符串定义用户 PIDKEY 属性条目的掩码模板。 字符串的可见部分由一对括号 (<>) 字符括起来。

下表标识了掩码的语法。

字符 含义
< 模板的可见段的左端。 此字符及其左侧的所有内容都将在用户界面中隐藏。 模板中不应多次出现此字符。
> 模板的可见段的右端。 此字符及其右侧的所有内容都将在用户界面中隐藏。 验证期间,此字符将替换为短划线。 如果可见段以 < 开头,则必须使用匹配的 > 来终止。
# 此字符可以是数字。
% 此字符可以是备用数字(数值),使掩码能够控制自定义操作区分字段的方式。
@ 此字符可以是随机数字(数值)。此字符不应出现在模板的可见部分。
& 此字符可以是任意字符。
^ 此字符可以是备用字符,使掩码能够控制自定义操作区分字段的方式。
? 此字符可以是备用字符,使掩码能够控制自定义操作区分字段的方式。
` 重音标记 ' (ASCII 值 96) 可以表示备用字符,使掩码能够控制自定义操作区分字段的方式。
_ 此字符是文本下划线字符。
= 此字符是字段终止符。 后面必须带有 #、%、^ 或 `。 这会创建一个与上述位置类型相同的多一个输入位置,并使用“-”分隔符终止字段。

 

任何其他字符都被视为文本常量。

对于可以编辑的字符,控件会为同一类连续字符的每个块创建单独的编辑窗口。

控件属性

若要使用事件更改属性的值,请在 EventMapping 表中将该控件订阅到一个 Control 事件,并在 Attribute 列中列出该属性标识符。 在 Event 列中输入 Control 事件的标识符。 可以将以下属性用于 MaskedEdit 控件。

Attribute 十六进制位 说明
IndirectPropertyName 这是与控件关联的间接属性的名称。 如果设置了 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 如果设置了 Indirect 属性位,此名称也是 Control 表的 Property 列中列出的属性的值。
位置 控件在对话框中的位置。 在 Control 表的 Width、Height、X 和 Y 列中分别输入控件的宽度、高度和控件左角的坐标。 使用安装程序单位表示长度和距离。
PropertyName 这是与此控件关联的属性的名称。 如果未设置 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 此属性在 Control 表的 Property 列中指定。
PropertyValue 此控件显示或更改的属性的当前值。 如果未设置 Indirect 属性位,则这是 PropertyName 的值。 如果设置了 Indirect 属性位,则这是 IndirectPropertyName 的值。 如果属性发生更改,控件将反映新值。
文本 若要设置文本字符串的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 Style 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。 指定掩码模板的字符串遵循此前缀,并使用本主题前面所述的语法。
Visible 0x00000000 0x00000001
隐藏的控件。 可见控件。
将此位包含在 Control 表中 Attributes 列的位字中,以使控件在创建后可见或隐藏。
还可使用 ControlCondition 表隐藏或显示控件。
已启用 0x00000000 0x00000002
处于禁用状态的控件。 处于启用状态的控件。
将此位包含在 Control 表的 Attributes 列中的位字中,以便在创建控件时启用该控件。
还可使用 ControlCondition 表启用或禁用控件。
Sunken 0x00000000 0x00000004
显示默认视觉样式。 显示呈凹陷三维外观的控件。
将这些位包含在 Control 表的 Attributes 列中的位字中。
间接 0x00000000 0x00000008
控件显示或更改 Control 表的 Property 列中的属性的值。 控件显示或更改 Control 表的 Property 列中列出了其标识符的属性的值。
确定是否间接引用与此控件关联的属性。

 

备注

MaskedEdit 控件使用 BS_OWNERDRAW 和 WS_EX_CONTROLPARENT 样式创建 BUTTON 类的一个父窗口。 此控件为此窗口创建多个子窗口。

  • 对于常量文本部分,它会创建具有 SS_LEFT 和 WS_CHILD 样式的 STATIC 窗口。
  • 对于可编辑字段,此控件会创建一个包含 WS_CHILD、WS_BORDER和 WS_TABSTOP样式的 EDIT 窗口。
  • 对于数值字段,窗口还具有 ES_NUMBER 样式。

替代数字、% 和替代字母数字字符、^、? 和 ` 字段允许自定义操作以掩码控制的方式区分字段,例如,^ 可用于应为大写的字段。