Condividi tramite


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)

Vedere anche

EXTCHKBOX