DTCTL

适用于:Outlook 2013 | Outlook 2016

描述将在从显示表生成的对话框中使用的控件。

属性
标头文件:
Mapidefs.h
typedef struct
{
  ULONG ulCtlType;
  ULONG ulCtlFlags;
  LPBYTE lpbNotif;
  ULONG cbNotif;
  LPSTR lpszFilter;
  ULONG ulItemID;
  union
  {
    LPVOID lpv;
    LPDTBLLABEL lplabel;
    LPDTBLEDIT lpedit;
    LPDTBLLBX lplbx;
    LPDTBLCOMBOBOX lpcombobox;
    LPDTBLDDLBX lpddlbx;
    LPDTBLCHECKBOX lpcheckbox;
    LPDTBLGROUPBOX lpgroupbox;
    LPDTBLBUTTON lpbutton;
    LPDTBLRADIOBUTTON lpradiobutton;
    LPDTBLMVLISTBOX lpmvlbx;
    LPDTBLMVDDLBX lpmvddlbx;
    LPDTBLPAGE lppage;
  } ctl;
} DTCTL, FAR *LPDTCTL;

Members

ulCtlType

包含在 ctl 成员中的控件类型,对应于控件PR_CONTROL_TYPE (PidTagControlType) 属性。 可能的值如下所示:

DTCT_LABEL

标签控件。

DTCT_EDIT

编辑控件。

DTCT_LBX

列表框控件。

DTCT_COMBOBOX

组合框控件。

DTCT_DDLBX

下拉列表控件。

DTCT_CHECKBOX

复选框控件。

DTCT_GROUPBOX

组框控件。

DTCT_BUTTON

按钮控件。

DTCT_PAGE

选项卡式页面控件。

DTCT_RADIOBUTTON

单选按钮控件。

DTCT_MVLISTBOX

多值列表控件。

DTCT_MVDDLBX

多值下拉列表控件。

ulCtlFlags

描述控件功能并对应于控件 PR_CONTROL_FLAGS 的标志的位掩码 (PidTagControlFlags) 属性。 只能为检查框、组合框、列表框和编辑控件设置这些标志。 可能的值如下所示:

DT_ACCEPT_DBCS

接受 ANSI 或 DBCS 格式。 此标志仅对编辑控件有效。

DT_EDITABLE

用户可以修改 控件中的文本。

DT_MULTILINE

控件可以包含多个文本行。 此标志仅对编辑控件有效。

DT_PASSWORD_EDIT

控件包含密码;因此,不应向用户显示控件的内容。 此标志仅对编辑控件有效。

DT_REQUIRED

对话框控件是必需的。 此标志仅对编辑和组合框控件有效。

DT_SET_IMMEDIATE

在控件中发生更改时启用值的即时输出。 这允许在两个控件之间建立依赖关系。

lpbNotif

指向由 GUID 结构组成的结构的指针,表示服务提供程序和控件的标识符。 lpbNotifcbNotif 成员对应于控件的 PR_CONTROL_ID (PidTagControlId) 属性,用于在必须更新控件时通知用户界面。

cbNotif

lpbNotif 成员指向的结构中的字节计数。

lpszFilter

指向字符串的指针,该字符串描述哪些字符可以在编辑或组合框控件中输入。 对于其他类型的控件, lpszFilter 成员可以为 NULL。 对于编辑和组合框控件,它应该是一次应用于单个字符的正则表达式。 相同的筛选器将应用于 控件中的所有字符。 筛选器字符串的格式如下所示:

字符 说明
* 允许 (任何字符, "*" 例如,) 。
[ ] 定义一组字符 (, "[0123456789]"例如 .)
- 指示 (字符的范围, "[a-z]" 例如) 。
~ 指示不允许这些字符 (例如 "[~0-9]")
\ 例如,用于引用上述任何符号 (表示 "[\-\\\[\]]") 允许-, , [和 ] 字符。

ulItemID

标识对话框资源中的控件的值。 对于类型DTCT_PAGE选项卡式页控件, 可以选择使用 ulItemID 成员从字符串资源加载页面的组件名称。 从对话框资源读取位置和标签信息。

Ctl

一个结构,用于保存控件的数据,并对应于控件的 PR_CONTROL_STRUCTURE (PidTagControlStructure) 属性。 每种类型的控件都有不同的结构。

备注

DTCTL 结构描述任何类型的一个控件。 它的大多数成员用于设置控件的属性。

ctl 成员是与特定类型的控件相关的结构的联合。 例如,如果 DTCTL 结构描述编辑控件, 则 ctl 成员将指向 DTBLEDIT 结构。 此结构对应于控件的 PR_CONTROL_STRUCTURE 属性。 联合具有 LPVOID 类型的变量作为其第一个成员,以允许 DTCTL 结构的编译时初始化。

尽管 BuildDisplayTable 函数使用 DTCTL 结构从控件资源生成显示表, 但 DTCTL 结构永远不会出现在显示表本身中。 此结构仅向 BuildDisplayTable 提供信息。

ulCtlFlags 成员中 ,DT_ACCEPT_DBCS四个标志DT_EDITABLE DT_MULTILINE_and DT_PASSWORD_EDIT仅影响编辑控件。 另外两个DT_REQUIRED和DT_SET_IMMEDIATE影响任何可编辑控件。

可用于对话框的控件包括标签、文本框、墨迹感知文本框、列表、下拉列表、组合框、检查框、组框、按钮、单选按钮和选项卡式页面。

有关显示表的概述,请参阅 显示表。 有关如何实现显示表的信息,请参阅 实现显示表

另请参阅