EXTPUSH 結構 (compstui.h)

CPSUI 應用程式會使用 EXTPUSH 結構, (包括印表機介面 DLL) 來指定擴充的按鈕,這可以新增至屬性表頁面選項。 按下按鈕時,即可顯示新的對話方塊。

語法

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

定義 DUMMCOUNTIONNAME 等位。

DUMMYUNIONNAME.DlgProc

DLGPROC 類型的對話框指標,用來處理按鈕對話框的訊息。 For more information on using DialogProc, see the Remarks section below.

如果提供此指標,則必須在 Flags 中設定EPF_PUSH_TYPE_DLGPROC。

DUMMYUNIONNAME.pfnCallBack

_CPSUICALLBACK型別回呼函式的指標,以處理CPSUICB_REASON_PUSHBUTTON原因。 如需詳細資訊,請參閱接下來的<備註>一節。

如果提供此指標,則必須在 Flags 中清除EPF_PUSH_TYPE_DLGPROC。

IconID

下列其中一個圖示識別碼:

  • 圖示資源標識碼。 這可以是應用程式定義的,也可以是其中一個 CPSUI 提供的IDI_CPSUI前置圖示資源識別碼。

  • 圖示句柄。 如果指定句柄,則必須在 Flags 成員中設定EPF_ICONID_AS_HICON。

  • CPSUI 會顯示按鈕旁的圖示。 如果此值為零,則不會顯示圖示。

DUMMYUNIONNAME2

定義 DUMMYUNIONNAME2 聯集。

DUMMYUNIONNAME2.DlgTemplateID

指定對話框的資源識別碼。

如果 DlgTemplateID = 0,則常見的 UI 會使用下列參數呼叫 DlgProc

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

DUMMYUNIONNAME2.hDlgTemplate

DLGTEMPLATE 的句柄,將用於快顯對話方塊。

dwReserved[3]

保留,必須初始化為零。

備註

延伸的按鈕是一種 CPSUI 定義的按鈕類型,可以與 OPTITEM 結構相關聯。 OPTITEM 結構可以有一個與它相關聯的延伸按鈕或一個延伸複選框。

當您使用 EXTPUSH 結構來建立按鈕時,您可以選擇性地建立當使用者按鍵時開啟的其他對話方塊。 若要建立此對話框,您應該在 DlgProc 成員中指定對話框程式的指標,並在 DlgTemplateIDhDlgTemplate 成員中包含對話框範本規格。

如果在 Flags 中設定EPF_USE_HDLGTEMPLATE,CPSUI 會呼叫 DialogBoxIndirectParam 來建立對話框,並傳遞 DlgProchDlgTemplate 成員的內容。

如果未在 Flags 中設定EPF_USE_HDLGTEMPLATE,CPSUI 會呼叫 DialogBoxParam 來建立對話方塊,並傳遞 DlgProcDlgTemplateID 成員的內容。

使用 uMsg 值為 WM_INITDIALOG 呼叫對話框程式時, lParam 值是 CPSUICBPARAM 結構的位址, 而 Reason 成員設定為 CPSUICB_REASON_EXTPUSH。 如需 uMsglParam 參數的詳細資訊,請參閱 DialogProc

如果使用者按鍵時不需要 CPSUI 顯示對話框,您可以在 pfnCallBack 成員中指定_CPSUICALLBACK型別回呼函式的位址。 當使用者按鍵時,CPSUI 會呼叫回調函式。 隨附的 CPSUICBPARAM 結構 Reason 成員將會設定為CPSUICB_REASON_EXTPUSH。

規格需求

需求
標頭 compstui.h (包含 Compstui.h)

另請參閱

EXTCHKBOX