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 | 如果已設定,DlgProc 和 DlgTemplateID/hDlgTemplate 成員都是有效的。 如果未設定,pfnCallBack 成員 有效。 |
EPF_USE_HDLGTEMPLATE | 如果設定,hDlgTemplate 包含範本句柄。 如果未設定,DlgTemplateID 包含範本資源識別碼。 |
pTitle
字串標識碼,表示按鈕標題。 這可以是 NULL 終止字串的 32 位指標,也可以是 16 位字串資源識別符,且 HIWORD 設定為零。
DUMMYUNIONNAME
定義 DUMMYUNIONNAME 等位。
DUMMYUNIONNAME.DlgProc
DLGPROC 型別的對話框程式指標,以處理按鈕對話框的訊息。 如需使用
如果提供此指標,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 成員中指定對話框程式的指標,並在 DlgTemplateID 或 hDlgTemplate 成員中包含對話框範本規格。
如果在 Flags中設定EPF_USE_HDLGTEMPLATE ,CPSUI 會 呼叫 dialogBoxIndirectParam來建立對話框,並傳遞 DlgProc 和 hDlgTemplate 成員的內容。
如果未在 Flags中設定EPF_USE_HDLGTEMPLATE,CPSUI 會 呼叫 dialogBoxParam來建立對話框,傳遞 DlgProc 和 DlgTemplateID 成員的內容。
使用 WM_INITDIALOG uMsg 值呼叫對話框程式時,lParam 值是 CPSUICBPARAM 結構的位址,且 Reason 成員設定為 CPSUICB_REASON_EXTPUSH。 如需 uMsg 和 lParam 參數的詳細資訊,請參閱 DialogProc。
如果使用者按鍵時不需要 CPSUI 顯示對話框,您可以在 pfnCallBack pfnCallBack 成員中指定 _CPSUICALLBACK類型回呼函式的位址。 當使用者按鍵時,CPSUI 會呼叫回調函式。 隨附的 CPSUICBPARAM 結構 Reason 成員將會設定為 CPSUICB_REASON_EXTPUSH。
要求
要求 | 價值 |
---|---|
標頭 | compstui.h (包括 Compstui.h) |