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.
- O assistente começaria com duas páginas, "Introdução" e "Conclusão". O usuário começa na página "Introdução".
- Introdução (o usuário está aqui)
- Completion
- 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.
- Introdução
- Completion
- Dinâmico 1 (o usuário está aqui)
- Dinâmico 2
- Dinâmico 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".
- Introdução
- Conclusão (o usuário está aqui)
- Dinâmico 1
- Dinâmico 2
- Dinâmico 3
- Em seguida, o aplicativo pode remover as três páginas dinâmicas (numeradas de três a cinco) com segurança.
- Introdução
- 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 |
|