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 | 如果設定, DlgProc 和 DlgTemplateID/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 成員中指定對話框程式的指標,並在 DlgTemplateID 或 hDlgTemplate 成員中包含對話框範本規格。
如果在 Flags 中設定EPF_USE_HDLGTEMPLATE,CPSUI 會呼叫 DialogBoxIndirectParam 來建立對話框,並傳遞 DlgProc 和 hDlgTemplate 成員的內容。
如果未在 Flags 中設定EPF_USE_HDLGTEMPLATE,CPSUI 會呼叫 DialogBoxParam 來建立對話方塊,並傳遞 DlgProc 和 DlgTemplateID 成員的內容。
使用 uMsg 值為 WM_INITDIALOG 呼叫對話框程式時, lParam 值是 CPSUICBPARAM 結構的位址, 而 Reason 成員設定為 CPSUICB_REASON_EXTPUSH。 如需 uMsg 和 lParam 參數的詳細資訊,請參閱 DialogProc。
如果使用者按鍵時不需要 CPSUI 顯示對話框,您可以在 pfnCallBack 成員中指定_CPSUICALLBACK型別回呼函式的位址。 當使用者按鍵時,CPSUI 會呼叫回調函式。 隨附的 CPSUICBPARAM 結構 Reason 成員將會設定為CPSUICB_REASON_EXTPUSH。
規格需求
需求 | 值 |
---|---|
標頭 | compstui.h (包含 Compstui.h) |