EXTPUSH 结构 (compstui.h)

CPSUI 应用程序(包括打印机接口 DLL)使用 EXTPUSH 结构来指定扩展的按下按钮,该按钮可以添加到属性表页选项。 按下按钮后,可以显示新对话框。

语法

typedef struct _EXTPUSH {
  WORD      cbSize;
  WORD      Flags;
  LPTSTR    pTitle;
  union {
    DLGPROC DlgProc;
    FARPROC pfnCallBack;
  } DUMMYUNIONNAME;
  ULONG_PTR IconID;
  union {
    WORD   DlgTemplateID;
    HANDLE hDlgTemplate;
  } DUMMYUNIONNAME2;
  ULONG_PTR dwReserved[3];
} EXTPUSH, *PEXTPUSH;

成员

cbSize

EXTPUSH 结构的大小(以字节为单位)。

Flags

位标志,可以是下列值之一:

描述
EPF_ICONID_AS_HICON 如果已设置,则 IconID 成员包含图标句柄。 如果未设置,则 IconID 成员包含图标资源标识符。
EPF_INCLUDE_SETUP_TITLE 如果设置,CPSUI 会将“Setup”追加到由 pTitle指向的字符串。
EPF_NO_DOT_DOT_DOT 如果已设置,则 CPSUI 不会追加“...”指向由 pTitle指向的字符串。
EPF_OVERLAY_NO_ICON 如果设置,CPSUI 会将其IDI_CPSUI_NO图标覆盖到由 IconID 成员标识的图标上。
EPF_OVERLAY_STOP_ICON 如果设置,CPSUI 会将IDI_CPSUI_STOP图标覆盖到由 IconID 成员标识的图标上。
EPF_OVERLAY_WARNING_ICON 如果设置,CPSUI 会将其IDI_CPSUI_WARNING图标覆盖到由 IconID 成员标识的图标上。
EPF_PUSH_TYPE_DLGPROC 如果已设置,则 DlgProcDlgTemplateID/hDlgTemplate 成员有效。 如果未设置,pfnCallBack 成员有效。
EPF_USE_HDLGTEMPLATE 如果已设置,hDlgTemplate 包含模板句柄。 如果未设置,DlgTemplateID 包含模板资源标识符。

pTitle

字符串标识符,表示按钮标题。 这可以是指向 NULL 终止字符串的 32 位指针,也可以是 16 位字符串资源标识符,HIWORD 设置为零。

DUMMYUNIONNAME

定义 DUMMYUNIONNAME 联合。

DUMMYUNIONNAME.DlgProc

DLGPROC 类型的指针指向对话框过程,以处理按钮对话框的消息。 有关使用 DialogProc的详细信息,请参阅下面的 备注 部分。

如果提供了此指针,则必须在 标志中设置EPF_PUSH_TYPE_DLGPROC。

DUMMYUNIONNAME.pfnCallBack

指向 _CPSUICALLBACK类型回调函数的指针,用于处理CPSUICB_REASON_PUSHBUTTON原因。 有关详细信息,请参阅以下“备注”部分。

如果提供了此指针,则必须在 标志中清除EPF_PUSH_TYPE_DLGPROC。

IconID

以下图标标识符之一:

  • 图标资源标识符。 这可以是应用程序定义的,也可以是 CPSUI 提供的、IDI_CPSUI前缀的图标资源标识符之一。

  • 图标句柄。 如果指定句柄,则必须在 标志 成员中设置EPF_ICONID_AS_HICON。

  • CPSUI 显示按钮旁边的图标。 如果此值为零,则不显示图标。

DUMMYUNIONNAME2

定义 DUMMYUNIONNAME2 联合。

DUMMYUNIONNAME2.DlgTemplateID

指定对话框的资源 ID。

如果 DlgTemplateID = 0,则通用 UI 将使用以下参数调用 DlgProc

DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);

DUMMYUNIONNAME2.hDlgTemplate

DLGTEMPLATE 句柄,该对话框将用于弹出对话框。

dwReserved[3]

保留,必须初始化为零。

言论

扩展按下按钮是一种 CPSUI 定义的推送按钮类型,可与 OPTITEM 结构相关联。 OPTITEM 结构可以有一个扩展的按下按钮或一个与之关联的扩展复选框。

使用 EXTPUSH 结构创建一个推送按钮时,可以选择创建一个在用户单击该按钮时打开的其他对话框。 若要创建此对话框,应指定指向 DlgProc 成员中的对话框过程的指针,并在 DlgTemplateIDhDlgTemplate 成员中包含对话框模板规范。

如果在 标志中设置EPF_USE_HDLGTEMPLATE,则 CPSUI 通过调用 dialogBoxIndirectParam来创建对话框,传递 DlgProchDlgTemplate 成员的内容。

如果未在 标志中设置EPF_USE_HDLGTEMPLATE,则 CPSUI 通过调用 dialogBoxParam、传递 DlgProcDlgTemplateID 成员的内容来创建对话框。

使用 WM_INITDIALOG uMsg 值调用对话框过程时,lParam 值是 CPSUICBPARAM 结构的地址,Reason 成员设置为CPSUICB_REASON_EXTPUSH。 有关 uMsglParam 参数的详细信息,请参阅 DialogProc

如果用户单击按钮时不需要 CPSUI 显示对话框,则可以在 pfnCallBack 成员中指定 _CPSUICALLBACK类型回调函数的地址。 当用户单击该按钮时,CPSUI 将调用回调函数。 CPSUICBPARAM 结构的 原因 成员将设置为CPSUICB_REASON_EXTPUSH。

要求

要求 价值
标头 compstui.h (包括 Compstui.h)

另请参阅

EXTCHKBOX