PSN_WIZNEXT código de notificação

Notifica uma página de que o usuário clicou no botão Avançar em um assistente. Esse código de notificação é enviado na forma de uma mensagem WM_NOTIFY .

PSN_WIZNEXT 

    lppsn = (LPPSHNOTIFY) lParam; 

Parâmetros

lParam

Ponteiro para uma estrutura PSHNOTIFY que contém informações sobre o código de notificação. Essa estrutura contém uma estrutura NMHDR como seu primeiro membro, hdr. O membro hwndFrom dessa estrutura NMHDR contém o identificador para a folha de propriedades. O membro lParam da estrutura PSHNOTIFY não contém nenhuma informação.

Valor retornado

Retornar 0 para permitir que o assistente vá para a próxima página. Retornar -1 para impedir que o assistente altere as páginas. Para exibir uma página específica, retorne seu identificador de recurso de caixa de diálogo. Se a caixa de diálogo tiver sido especificada com o sinalizador PSP_DLGINDIRECT , essa notificação retornará o ponteiro para o modelo de caixa de diálogo.

Comentários

Para definir o valor retornado, o procedimento da caixa de diálogo da página deve chamar a função SetWindowLong com o valor DWL_MSGRESULT e retornar TRUE. Por exemplo:

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

case PSN_WIZBACK :
    ...

Observação

A folha de propriedades está no processo de manipular a lista de páginas quando o código de notificação PSN_WIZNEXT é enviado. Você pode adicionar, inserir ou remover páginas em resposta a esses códigos de notificação, mas é necessário ter cuidado especial se você inserir ou remover páginas antes da página atual.

Se você inserir ou remover páginas antes da página atual, deverá retornar (por meio de DWL_MSGRESULT) um valor diferente de zero para especificar a nova página desejada. No entanto, observe que, se você inserir ou remover uma página localizada antes da página atual (que tem um índice menor que a página atual), PSN_KILLACTIVE poderá ser enviado para a página errada.

Por esse motivo, é recomendável que os assistentes que adicionam e removem páginas dinamicamente em resposta a PSN_WIZNEXT e PSN_WIZBACK o façam apenas às páginas no final da lista. Se você quiser que o assistente remova as páginas com precisão, mantenha as páginas dinâmicas no final da lista e volte para páginas permanentes antes de excluí-las.

Por exemplo, suponha que um assistente consiste em uma página introdutória, uma série de páginas dinâmicas e uma página de conclusão e você deseja excluir as páginas dinâmicas quando o usuário atingir a página de conclusão.

  1. O assistente começaria com duas páginas, "Introdução" e "Conclusão". O usuário começa na página "Introdução".
    1. Introdução (o usuário está aqui)
    2. Completion
  2. Quando o usuário navega para longe de "Introdução", o assistente adiciona as páginas dinâmicas e coloca o usuário na primeira página dinâmica retornando (por meio de DWL_MSGRESULT) o identificador de caixa de diálogo da página "Dinâmico 1". Neste exemplo, há três páginas dinâmicas.
    1. Introdução
    2. Completion
    3. Dinâmico 1 (o usuário está aqui)
    4. Dinâmico 2
    5. Dinâmico 3
  3. Depois que o usuário navegar pelas páginas dinâmicas até "Dinâmico 3" e navegar até a próxima página, o aplicativo deverá colocar o usuário na página "Conclusão". Novamente, isso é feito retornando (por meio de DWL_MSGRESULT) o identificador de caixa de diálogo da página "Conclusão".
    1. Introdução
    2. Conclusão (o usuário está aqui)
    3. Dinâmico 1
    4. Dinâmico 2
    5. Dinâmico 3
  4. Em seguida, o aplicativo pode remover as três páginas dinâmicas (numeradas de três a cinco) com segurança.
    1. Introdução
    2. Conclusão (o usuário está aqui)

Observe que essa técnica só será necessária se o assistente remover páginas dinamicamente. Se o assistente adicionar apenas páginas dinamicamente, esse processo não será necessário.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
Prsht.h