Struttura EXTPUSH (compstui.h)
La struttura EXTPUSH viene utilizzata dalle applicazioni CPSUI (incluse le DLL dell'interfaccia della stampante) per specificare un pulsante di pressione esteso, che può essere aggiunto a un'opzione della pagina della finestra delle proprietà. Quando si preme il pulsante, è possibile visualizzare una nuova finestra di dialogo.
Sintassi
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;
Membri
cbSize
Dimensioni, in byte, della struttura EXTPUSH.
Flags
Flag di bit, che possono essere uno dei seguenti:
Bandiera | Descrizione |
---|---|
EPF_ICONID_AS_HICON | Se impostato, il membro IconID contiene un handle icona. Se non è impostato, il membro IconID contiene un identificatore di risorsa icona. |
EPF_INCLUDE_SETUP_TITLE | Se impostato, CPSUI aggiunge "Setup" alla stringa a cui punta pTitle. |
EPF_NO_DOT_DOT_DOT | Se impostato, CPSUI non aggiunge "..." alla stringa a cui punta pTitle. |
EPF_OVERLAY_NO_ICON | Se impostato, CPSUI sovrappone l'icona IDI_CPSUI_NO all'icona identificata dal membro IconID. |
EPF_OVERLAY_STOP_ICON | Se impostato, CPSUI sovrappone l'icona IDI_CPSUI_STOP all'icona identificata dal membro IconID. |
EPF_OVERLAY_WARNING_ICON | Se impostato, CPSUI sovrappone l'icona IDI_CPSUI_WARNING all'icona identificata dal membro IconID. |
EPF_PUSH_TYPE_DLGPROC | Se impostato, i membri DlgPro c e DlgTemplateID/hDlgTemplate sono validi. Se non è impostato, il membro pfnCallBack è valido. |
EPF_USE_HDLGTEMPLATE | Se impostato, hDlgTemplate contiene un handle di modello. Se non è impostato, DlgTemplateID contiene un identificatore di risorsa modello. |
pTitle
Identificatore stringa, che rappresenta il titolo del pulsante di pressione. Può trattarsi di un puntatore a 32 bit a una stringa con terminazione NULL oppure può essere un identificatore di risorsa stringa a 16 bit con HIWORD impostato su zero.
DUMMYUNIONNAME
Definisce l'unione DUMMYUNIONNAME.
DUMMYUNIONNAME.DlgProc
Puntatore tipizzato DLGPROC a una routine della finestra di dialogo per elaborare i messaggi per la finestra di dialogo del pulsante di pressione. Per altre informazioni sull'uso di DialogProc, vedere la sezione osservazioni di seguito.
Se questo puntatore viene fornito, EPF_PUSH_TYPE_DLGPROC deve essere impostato in Flag.
DUMMYUNIONNAME.pfnCallBack
Puntatore a una funzione di callback _CPSUICALLBACKtipizzata per gestire il motivo CPSUICB_REASON_PUSHBUTTON. Per altre informazioni, vedere la sezione Osservazioni seguente.
Se questo puntatore viene fornito, EPF_PUSH_TYPE_DLGPROC deve essere cancellato in Flag.
IconID
Uno degli identificatori di icona seguenti:
Identificatore di risorsa icona. Può essere definito dall'applicazione oppure può essere uno degli identificatori di risorsa dell'icona con prefisso CPSUI IDI_CPSUI.
Handle icona. Se viene specificato un handle, EPF_ICONID_AS_HICON deve essere impostato nel membro Flags.
CPSUI visualizza l'icona accanto al pulsante di pressione. Se questo valore è zero, non viene visualizzata un'icona.
DUMMYUNIONNAME2
Definisce l'unione DUMMYUNIONNAME2.
DUMMYUNIONNAME2.DlgTemplateID
Specifica l'ID risorsa per la finestra di dialogo.
Se DlgTemplateID = 0, l'interfaccia utente comune chiamerà DlgProc con il parametro seguente:
DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);
DUMMYUNIONNAME2.hDlgTemplate
Handle per la DLGTEMPLATE che verrà usata per una finestra di dialogo popup.
dwReserved[3]
Riservato, deve essere inizializzato su zero.
Osservazioni
Un pulsante di scelta estesa è un tipo di pulsante di pressione definito da CPSUI che può essere associato a una struttura OPTITEM. Una struttura OPTITEM può avere un pulsante di scelta estesa o una casella di controllo estesa associata.
Quando si utilizza la struttura EXTPUSH per creare un pulsante di pressione, è possibile creare facoltativamente una finestra di dialogo aggiuntiva che si apre quando l'utente fa clic sul pulsante. Per creare questa finestra di dialogo, è necessario specificare un puntatore a una routine della finestra di dialogo nel membro DlgProc e includere una specifica del modello di finestra di dialogo nel DlgTemplateID o nel membro hDlgTemplate.
Se EPF_USE_HDLGTEMPLATE è impostato in Flag, CPSUI crea la finestra di dialogo chiamando DialogBoxIndirectParam, passando il contenuto del DlgProc e hDlgTemplate.
Se EPF_USE_HDLGTEMPLATE non è impostato in Flag, CPSUI crea la finestra di dialogo chiamando DialogBoxParam, passando il contenuto del DlgProc e DlgTemplateID membri.
Quando viene chiamata la routine della finestra di dialogo con un valore uMsg di WM_INITDIALOG, il valore lParam è l'indirizzo di una strutturaCPSUICBPARAM, con il membro Reason impostato su CPSUICB_REASON_EXTPUSH. Per altre informazioni sui parametri uMsg e lParam, vedere DialogProc.
Se non è necessario cpsui per visualizzare una finestra di dialogo quando l'utente fa clic sul pulsante, è possibile specificare l'indirizzo di una funzione di callback _CPSUICALLBACKtipizzata nel membro pfnCallBack. Quando un utente fa clic sul pulsante, CPSUI chiama la funzione di callback. Il membro Reason della struttura CPSUICBPARAM a accompagnamento verrà impostato su CPSUICB_REASON_EXTPUSH.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | compstui.h (include Compstui.h) |