Compartir vía


PSN_WIZNEXT código de notificación

Notifica a una página que el usuario ha realizado clic en el botón Siguiente en un asistente. Este código de notificación se envía en forma de mensaje WM_NOTIFY .

PSN_WIZNEXT 

    lppsn = (LPPSHNOTIFY) lParam; 

Parámetros

lParam

Puntero a una estructura PSHNOTIFY que contiene información sobre el código de notificación. Esta estructura contiene una estructura NMHDR como primer miembro, hdr. El miembro hwndFrom de esta estructura NMHDR contiene el identificador de la hoja de propiedades. El miembro lParam de la estructura PSHNOTIFY no contiene ninguna información.

Valor devuelto

Devuelve 0 para permitir que el asistente vaya a la página siguiente. Devuelve -1 para evitar que el asistente cambie las páginas. Para mostrar una página determinada, devuelva su identificador de recurso de diálogo. Si el cuadro de diálogo se especificó con la marca PSP_DLGINDIRECT , esta notificación devuelve el puntero a la plantilla de diálogo.

Observaciones

Para establecer el valor devuelto, el procedimiento del cuadro de diálogo para la página debe llamar a la función SetWindowLong con el valor DWL_MSGRESULT y devolver TRUE. Por ejemplo:

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

case PSN_WIZBACK :
    ...

Nota

La hoja de propiedades está en proceso de manipular la lista de páginas cuando se envía el código de notificación de PSN_WIZNEXT. Puede agregar, insertar o quitar páginas en respuesta a estos códigos de notificación, pero se debe tener especial cuidado si inserta o quita páginas antes de la página actual.

Si inserta o quita páginas antes de la página actual, debe devolver (a través de DWL_MSGRESULT) un valor distinto de cero para especificar la nueva página deseada. Sin embargo, tenga en cuenta que si inserta o quita una página que se encuentra antes de la página actual (que tiene un índice más pequeño que la página actual), es posible que PSN_KILLACTIVE se envíen a la página incorrecta.

Por este motivo, se recomienda que los asistentes que agreguen y quiten páginas dinámicamente en respuesta a PSN_WIZNEXT y PSN_WIZBACK hacerlo solo a las páginas al final de la lista. Si desea que el asistente quite las páginas con precisión, mantenga las páginas dinámicas al final de la lista y vuelva a páginas permanentes antes de eliminarlas.

Por ejemplo, supongamos que un asistente consta de una página introductoria, una serie de páginas dinámicas y una página de finalización, y desea eliminar las páginas dinámicas cuando el usuario alcanza la página de finalización.

  1. El asistente comenzaría con dos páginas, "Introducción" y "Finalización". El usuario comienza en la página "Introducción".
    1. Introducción (el usuario está aquí)
    2. Completion
  2. Cuando el usuario se aleja de "Introducción", el asistente agrega las páginas dinámicas y coloca al usuario en la primera página dinámica devolviendo (a través de DWL_MSGRESULT) el identificador de diálogo de la página "Dynamic 1". En este ejemplo, hay tres páginas dinámicas.
    1. Introducción
    2. Completion
    3. Dinámica 1 (el usuario está aquí)
    4. Dinámico 2
    5. Dinámico 3
  3. Una vez que el usuario navega por las páginas dinámicas a "Dynamic 3" y, a continuación, navega a la página siguiente, la aplicación debe colocar al usuario en la página "Finalización". De nuevo, esto se hace devolviendo (a través de DWL_MSGRESULT) el identificador de diálogo de la página "Finalización".
    1. Introducción
    2. Finalización (el usuario está aquí)
    3. Dinámico 1
    4. Dinámico 2
    5. Dinámico 3
  4. Después, la aplicación puede quitar las tres páginas dinámicas (numeradas tres a cinco) de forma segura.
    1. Introducción
    2. Finalización (el usuario está aquí)

Tenga en cuenta que esta técnica solo es necesaria si el asistente quita páginas dinámicamente. Si el asistente solo agrega páginas dinámicamente, este proceso no es necesario.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Prsht.h