PSN_WIZBACK 알림 코드
마법사에서 사용자가 뒤로 단추를 클릭했음을 페이지에 알립니다. 이 알림 코드는 WM_NOTIFY 메시지 형식으로 전송됩니다.
PSN_WIZBACK
lppsn = (LPPSHNOTIFY) lParam;
매개 변수
-
lParam
-
알림 코드에 대한 정보가 포함된 PSHNOTIFY 구조체에 대한 포인터입니다. 이 구조체에는 NMHDR 구조체가 첫 번째 멤버인 hdr로 포함되어 있습니다. 이 NMHDR 구조체의 hwndFrom 멤버에는 속성 시트에 대한 핸들이 포함되어 있습니다. PSHNOTIFY 구조체의 lParam 멤버에 정보가 없습니다.
반환 값
마법사가 이전 페이지로 이동하도록 허용하려면 0을 반환합니다. 마법사가 페이지를 변경하지 못하도록 -1을 반환합니다. 특정 페이지를 표시하려면 대화 상자 리소스 식별자를 반환합니다. PSP_DLGINDIRECT 플래그를 사용하여 대화 상자를 지정한 경우 이 알림은 대화 상자 템플릿에 대한 포인터를 반환합니다.
설명
반환 값을 설정하려면 페이지의 대화 상자 프로시저가 DWL_MSGRESULT 값과 함께 SetWindowLong 함수를 호출하고 TRUE를 반환해야 합니다. 다음은 그 예입니다.
case PSN_WIZBACK :
SetWindowLong(hDlg, DWL_MSGRESULT, 0);
break;
case PSN_WIZNEXT :
...
참고
속성 시트는 PSN_WIZBACK 알림 코드가 전송될 때 페이지 목록을 조작하는 중입니다. 이러한 알림 코드에 대한 응답으로 페이지를 추가, 삽입 또는 제거할 수 있지만 현재 페이지 앞에 페이지를 삽입하거나 제거하는 경우 특별히 주의해야 합니다.
현재 페이지 앞에 페이지를 삽입하거나 제거하는 경우 원하는 새 페이지를 지정하려면 0이 아닌 값을 반환해야 합니다(DWL_MSGRESULT를 통해). 그러나 현재 페이지보다 인덱스가 작은 페이지를 현재 페이지보다 앞에 있는 페이지를 삽입하거나 제거하면 PSN_KILLACTIVE가 잘못된 페이지로 전송될 수 있습니다.
따라서 PSN_WIZNEXT 및 PSN_WIZBACK에 대한 응답으로 페이지를 동적으로 추가 및 제거하는 마법사는 목록 끝에 있는 페이지에만 그렇게 하는 것이 좋습니다. 마법사에서 페이지를 정확하게 제거하려면 목록 끝에 동적 페이지를 유지하고 다시 영구 페이지로 이동한 후 삭제합니다.
예를 들어 마법사가 소개 페이지, 일련의 동적 페이지 및 완료 페이지로 구성되고, 사용자가 완료 페이지에 도달하면 동적 페이지를 삭제하려는 경우를 가정해 보겠습니다.
- 마법사는 "소개"와 "완료"라는 두 페이지로 시작합니다. 사용자가 "소개" 페이지에서 시작합니다.
- 소개(사용자가 여기에 있음)
- Completion
- 사용자가 "소개"에서 벗어나면 마법사가 동적 페이지를 추가하고 "동적 1" 페이지의 대화 상자 식별자를 반환하여(DWL_MSGRESULT를 통해) 사용자를 첫 번째 동적 페이지에 배치합니다. 이 예제에는 세 개의 동적 페이지가 있습니다.
- 소개
- Completion
- 동적 1(사용자가 여기에 있음)
- 동적 2
- 동적 3
- 사용자가 동적 페이지에서 "동적 3"으로 이동한 후, 다음 페이지로 이동하면 애플리케이션에서 사용자를 "완료" 페이지에 배치해야 합니다. 또 다시 이 작업은 "완료" 페이지의 대화 상자 식별자를 반환(DWL_MSGRESULT를 통해)하여 수행됩니다.
- 소개
- 완료(사용자가 여기에 있음)
- 동적 1
- 동적 2
- 동적 3
- 그런 다음 애플리케이션에서 세 개의 동적 페이지(3~5로 번호가 매겨짐)를 안전하게 제거할 수 있습니다.
- 소개
- 완료(사용자가 여기에 있음)
이 기술은 마법사가 페이지를 동적으로 제거하는 경우에만 필요합니다. 마법사에서 페이지를 동적으로 추가하는 경우에만 이 프로세스가 필요하지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2003 [데스크톱 앱만 해당] |
헤더 |
|