Share via


PSN_WIZNEXT codice di notifica

Notifica a una pagina che l'utente ha fatto clic sul pulsante Avanti in una procedura guidata. Questo codice di notifica viene inviato sotto forma di messaggio di WM_NOTIFY .

PSN_WIZNEXT 

    lppsn = (LPPSHNOTIFY) lParam; 

Parametri

lParam

Puntatore a una struttura PSHNOTIFY che contiene informazioni sul codice di notifica. Questa struttura contiene una struttura NMHDR come primo membro, hdr. Il membro hwndFrom di questa struttura NMHDR contiene l'handle nel foglio delle proprietà. Il membro lParam della struttura PSHNOTIFY non contiene informazioni.

Valore restituito

Restituire 0 per consentire alla procedura guidata di passare alla pagina successiva. Restituire -1 per impedire alla procedura guidata di modificare le pagine. Per visualizzare una determinata pagina, restituire l'identificatore della risorsa di dialogo. Se la finestra di dialogo è stata specificata con il flag PSP_DLGINDIRECT , questa notifica restituisce il puntatore al modello di dialogo.

Commenti

Per impostare il valore restituito, la procedura della finestra di dialogo per la pagina deve chiamare la funzione SetWindowLong con il valore DWL_MSGRESULT e restituire TRUE. Ad esempio:

case PSN_WIZNEXT :
    SetWindowLong(hDlg, DWL_MSGRESULT, 0);
    break;

case PSN_WIZBACK :
    ...

Nota

Il foglio delle proprietà è in fase di modifica dell'elenco di pagine quando viene inviato il codice di notifica PSN_WIZNEXT. È possibile aggiungere, inserire o rimuovere pagine in risposta a questi codici di notifica, ma è necessario prestare particolare attenzione se si inseriscono o si rimuoveno pagine prima della pagina corrente.

Se si inseriscono o si rimuoveno pagine prima della pagina corrente, è necessario restituire (tramite DWL_MSGRESULT) un valore diverso da zero per specificare la nuova pagina desiderata. Si noti tuttavia che se si inserisce o si rimuove una pagina che si trova prima della pagina corrente (con un indice più piccolo rispetto alla pagina corrente), PSN_KILLACTIVE potrebbe essere inviata alla pagina errata.

Per questo motivo, è consigliabile che le procedure guidate che aggiungono e rimuoveno le pagine in modo dinamico in risposta a PSN_WIZNEXT e PSN_WIZBACK farlo solo alle pagine alla fine dell'elenco. Se si vuole che la procedura guidata rimuove le pagine in modo accurato, mantenere le pagine dinamiche alla fine dell'elenco e tornare a pagine permanenti prima di eliminarle.

Si supponga, ad esempio, che una procedura guidata sia costituita da una pagina introduttiva, una serie di pagine dinamiche e una pagina di completamento e si desidera eliminare le pagine dinamiche quando l'utente raggiunge la pagina di completamento.

  1. La procedura guidata inizia con due pagine, "Introduzione" e "Completamento". L'utente inizia nella pagina "Introduzione".
    1. Introduzione (l'utente è qui)
    2. Completion
  2. Quando l'utente passa da "Introduzione", la procedura guidata aggiunge le pagine dinamiche e inserisce l'utente nella prima pagina dinamica restituendo (tramite DWL_MSGRESULT) l'identificatore della finestra di dialogo della pagina "Dinamico 1". In questo esempio sono presenti tre pagine dinamiche.
    1. Introduzione
    2. Completion
    3. Dinamico 1 (utente è qui)
    4. Dinamica 2
    5. Dinamica 3
  3. Dopo che l'utente passa attraverso le pagine dinamiche a "Dynamic 3" e quindi passa alla pagina successiva, l'applicazione deve posizionare l'utente nella pagina "Completamento". Inoltre, questa operazione viene eseguita restituendo (tramite DWL_MSGRESULT) l'identificatore della finestra di dialogo della pagina "Completamento".
    1. Introduzione
    2. Completamento (l'utente è qui)
    3. Dinamica 1
    4. Dinamica 2
    5. Dinamica 3
  4. L'applicazione può quindi rimuovere le tre pagine dinamiche (numerate tre a cinque) in modo sicuro.
    1. Introduzione
    2. Completamento (l'utente è qui)

Si noti che questa tecnica è necessaria solo se la procedura guidata rimuove le pagine in modo dinamico. Se la procedura guidata aggiunge solo pagine in modo dinamico, questo processo non è necessario.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Intestazione
Prsht.h