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)

Vedi anche

EXTCHKBOX