Struttura EXTPUSH (compstui.h)
La struttura EXTPUSH viene utilizzata dalle applicazioni CPSUI (incluse le DLL dell'interfaccia della stampante) per specificare un pulsante di push esteso, che può essere aggiunto a un'opzione della pagina della finestra delle proprietà. Quando viene premuto 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;
Members
cbSize
Dimensioni, in byte, della struttura EXTPUSH .
Flags
Flag di bit, che possono essere uno dei seguenti:
Flag | Descrizione |
---|---|
EPF_ICONID_AS_HICON | Se impostato, il membro IconID contiene un handle di 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 DlgProc 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 selezione. 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 procedura di finestra di dialogo per elaborare i messaggi per la finestra di dialogo del pulsante di selezione. 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 tipizzata _CPSUICALLBACK per gestire il motivo CPSUICB_REASON_PUSHBUTTON. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
Se viene specificato questo puntatore, 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 selezione. 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 DLGTEMPLATE che verrà usato per una finestra di dialogo popup.
dwReserved[3]
Riservato, deve essere inizializzato su zero.
Commenti
Un pulsante push esteso è un tipo di pulsante push definito da CPSUI che può essere associato a una struttura OPTITEM . A una struttura OPTITEM può essere associato un pulsante di scelta estesa o una casella di controllo estesa.
Quando si utilizza la struttura EXTPUSH per creare un pulsante di scelta, è 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 dialogo in DlgTemplateID o nel membro hDlgTemplate .
Se EPF_USE_HDLGTEMPLATE è impostato in Flags, CPSUI crea la finestra di dialogo chiamando DialogBoxIndirectParam, passando il contenuto dei membri DlgProc e hDlgTemplate .
Se EPF_USE_HDLGTEMPLATE non è impostato in Flags, CPSUI crea la finestra di dialogo chiamando DialogBoxParam, passando il contenuto dei membri DlgProc e DlgTemplateID .
Quando la routine della finestra di dialogo viene chiamata con un valore uMsg di WM_INITDIALOG, il valore lParam è l'indirizzo di una struttura CPSUICBPARAM , 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 _CPSUICALLBACK tipizzata nel membro pfnCallBack . Quando un utente fa clic sul pulsante, CPSUI chiama la funzione di callback. Il membro Reason della struttura CPSUICBPARAM a cui si accompagna verrà impostato su CPSUICB_REASON_EXTPUSH.
Requisiti
Requisito | Valore |
---|---|
Intestazione | compstui.h (include Compstui.h) |