共用方式為


EXTPUSH 結構 (compstui.h)

CPSUI 應用程式會使用 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必須在 Flags中設定。

DUMMYUNIONNAME.pfnCallBack

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

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

IconID

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

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

  • 圖示句柄。 如果指定句柄,則必須在 旗標 成員中設定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 成員的內容。

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

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

要求

要求 價值
標頭 compstui.h (包括 Compstui.h)

另請參閱

EXTCHKBOX