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