PAGESETUPDLGA 구조체(commdlg.h)

PageSetupDlg 함수가 페이지 설정 대화 상자를 초기화하는 데 사용하는 정보를 포함합니다. 사용자가 대화 상자를 닫은 후 시스템은 이 구조의 사용자 정의 페이지 매개 변수에 대한 정보를 반환합니다.

구문

typedef struct tagPSDA {
  DWORD           lStructSize;
  HWND            hwndOwner;
  HGLOBAL         hDevMode;
  HGLOBAL         hDevNames;
  DWORD           Flags;
  POINT           ptPaperSize;
  RECT            rtMinMargin;
  RECT            rtMargin;
  HINSTANCE       hInstance;
  LPARAM          lCustData;
  LPPAGESETUPHOOK lpfnPageSetupHook;
  LPPAGEPAINTHOOK lpfnPagePaintHook;
  LPCSTR          lpPageSetupTemplateName;
  HGLOBAL         hPageSetupTemplate;
} PAGESETUPDLGA, *LPPAGESETUPDLGA;

멤버

lStructSize

형식:DWORD

이 구조체의 크기(바이트)입니다.

hwndOwner

형식: HWND

대화 상자를 소유하는 창에 대한 핸들입니다. 이 멤버는 유효한 창 핸들이거나 대화 상자에 소유자가 없는 경우 NULL 일 수 있습니다.

hDevMode

형식: HGLOBAL

DEVMODE 구조를 포함하는 전역 메모리 개체에 대한 핸들입니다. 입력 시 핸들을 지정하면 해당 DEVMODE 구조체의 값을 사용하여 대화 상자에서 컨트롤을 초기화합니다. 출력 시 대화 상자는 hDevMode 를 전역 메모리 핸들로 설정하고 사용자의 선택을 지정하는 값이 포함된 DEVMODE 구조체로 설정합니다. 사용자의 선택을 사용할 수 없는 경우 대화 상자는 hDevModeNULL로 설정합니다.

hDevNames

형식: HGLOBAL

DEVNAMES 구조를 포함하는 전역 메모리 개체에 대한 핸들입니다. 이 구조체에는 드라이버 이름, 프린터 이름 및 출력 포트 이름을 지정하는 세 개의 문자열이 포함되어 있습니다. 입력 시 핸들을 지정하면 해당 DEVNAMES 구조의 문자열을 사용하여 대화 상자에서 컨트롤을 초기화합니다. 출력 시 대화 상자는 hDevNames 를 전역 메모리 핸들로 설정하고 사용자의 선택을 지정하는 문자열을 포함하는 DEVNAMES 구조체로 설정합니다. 사용자의 선택을 사용할 수 없는 경우 대화 상자는 hDevNamesNULL로 설정합니다.

Flags

형식:DWORD

페이지 설정 대화 상자를 초기화하는 데 사용할 수 있는 비트 플래그 집합입니다. 대화 상자가 반환되면 이러한 플래그를 설정하여 사용자의 입력을 나타냅니다. 이 멤버는 다음 값 중 하나 이상일 수 있습니다.

의미
PSD_DEFAULTMINMARGINS
0x00000000
페이지 여백에 대해 사용자가 지정할 수 있는 최소값을 프린터에서 허용하는 최소 여백으로 설정합니다. 이것이 기본값입니다. PSD_MARGINS 및 PSD_MINMARGINS 플래그도 지정된 경우 이 플래그는 무시 됩니다.
PSD_DISABLEMARGINS
0x00000010
여백 컨트롤을 사용하지 않도록 설정하여 사용자가 여백을 설정하지 못하도록 합니다.
PSD_DISABLEORIENTATION
0x00000100
방향 컨트롤을 사용하지 않도록 설정하여 사용자가 페이지 방향을 설정하지 못하도록 합니다.
PSD_DISABLEPAGEPAINTING
0x00080000
대화 상자가 샘플 페이지의 내용을 그리는 것을 방지합니다. PagePaintHook 후크 프로시저를 사용하도록 설정하는 경우에도 샘플 페이지의 내용을 그릴 수 있습니다.
PSD_DISABLEPAPER
0x00000200
용지 컨트롤을 사용하지 않도록 설정하여 사용자가 용지 크기 및 소스와 같은 페이지 매개 변수를 설정하지 못하도록 합니다.
PSD_DISABLEPRINTER
0x00000020
사용되지 않습니다.

Windows XP/2000: 프린터 단추를 사용하지 않도록 설정하면 사용자가 추가 프린터 설정 정보가 포함된 대화 상자를 호출할 수 없습니다.

PSD_ENABLEPAGEPAINTHOOK
0x00040000
lpfnPagePaintHook 멤버에 지정된 후크 프로시저를 사용하도록 설정합니다.
PSD_ENABLEPAGESETUPHOOK
0x00002000
lpfnPageSetupHook 멤버에 지정된 후크 프로시저를 사용하도록 설정합니다.
PSD_ENABLEPAGESETUPTEMPLATE
0x00008000
hInstancelpPageSetupTemplateName 멤버가 기본 템플릿 대신 사용할 대화 상자 템플릿을 지정함을 나타냅니다.
PSD_ENABLEPAGESETUPTEMPLATEHANDLE
0x00020000
hPageSetupTemplate 멤버가 미리 로드된 대화 상자 템플릿이 포함된 데이터 블록을 식별함을 나타냅니다. 이 플래그가 지정된 경우 시스템은 lpPageSetupTemplateName 멤버를 무시합니다.
PSD_INHUNDREDTHSOFMILLIMETERS
0x00000008
수백 밀리미터가 여백 및 용지 크기에 대한 측정 단위임을 나타냅니다. rtMargin, rtMinMarginptPaperSize 멤버의 값은 수백 밀리미터입니다. 입력 시 이 플래그를 설정하여 사용자의 로캘에 대한 기본 측정 단위를 재정의할 수 있습니다. 함수가 반환되면 대화 상자에서 이 플래그를 설정하여 사용된 단위를 나타냅니다.
PSD_INTHOUSANDTHSOFINCHES
0x00000004
1,000인치가 여백 및 용지 크기에 대한 측정 단위임을 나타냅니다. rtMargin, rtMinMarginptPaperSize 멤버의 값은 천 분의 1인치입니다. 입력 시 이 플래그를 설정하여 사용자의 로캘에 대한 기본 측정 단위를 재정의할 수 있습니다. 함수가 반환되면 대화 상자에서 이 플래그를 설정하여 사용된 단위를 나타냅니다.
PSD_INWININIINTLMEASURE
0x00000000
예약되어 있습니다.
PSD_MARGINS
0x00000002
시스템에서 rtMargin 멤버에 지정된 값을 왼쪽, 위쪽, 오른쪽 및 아래쪽 여백의 초기 너비로 사용하도록 합니다. PSD_MARGINS 설정되지 않은 경우 시스템은 모든 여백에 대해 초기 너비를 1인치로 설정합니다.
PSD_MINMARGINS
0x00000001
시스템에서 rtMinMargin 멤버에 지정된 값을 왼쪽, 위쪽, 오른쪽 및 아래쪽 여백에 대해 허용되는 최소 너비로 사용하도록 합니다. 시스템은 사용자가 지정된 최소값보다 작은 너비를 입력하지 못하도록 합니다. PSD_MINMARGINS 지정하지 않으면 시스템에서 허용되는 최소 너비를 프린터에서 허용하는 너비로 설정합니다.
PSD_NONETWORKBUTTON
0x00200000
네트워크 단추를 숨기고 사용하지 않도록 설정합니다.
PSD_NOWARNING
0x00000080
기본 프린터가 없는 경우 시스템에서 경고 메시지를 표시하지 못하도록 합니다.
PSD_RETURNDEFAULT
0x00000400

PageSetupDlg 는 대화 상자를 표시하지 않습니다. 대신 hDevNameshDevMode 멤버를 시스템 기본 프린터에 대해 초기화된 DEVMODEDEVNAMES 구조체에 대한 핸들로 설정합니다. hDevNames 또는 hDevModeNULL이 아닌 경우 PageSetupDlg는 오류를 반환합니다.

PSD_SHOWHELP
0x00000800
대화 상자에 도움말 단추가 표시되도록 합니다. hwndOwner 멤버는 사용자가 도움말 단추를 클릭할 때 대화 상자에서 보내는 HELPMSGSTRING 등록 메시지를 받을 창을 지정해야 합니다.

ptPaperSize

형식: POINT

사용자가 선택한 용지의 차원입니다. PSD_INTHOUSANDTHSOFINCHES 또는 PSD_INHUNDREDTHSOFMILLIMETERS 플래그는 측정 단위를 나타냅니다.

rtMinMargin

형식: RECT

왼쪽, 위쪽, 오른쪽 및 아래쪽 여백에 허용되는 최소 너비입니다. PSD_MINMARGINS 플래그가 설정되지 않은 경우 시스템에서 이 멤버를 무시합니다. 이러한 값은 rtMargin 멤버에 지정된 값보다 작거나 같아야 합니다. PSD_INTHOUSANDTHSOFINCHES 또는 PSD_INHUNDREDTHSOFMILLIMETERS 플래그는 측정 단위를 나타냅니다.

rtMargin

형식: RECT

왼쪽, 위쪽, 오른쪽 및 아래쪽 여백의 너비입니다. PSD_MARGINS 플래그를 설정하는 경우 rtMargin은 초기 여백 값을 지정합니다. PageSetupDlg가 반환되면 rtMargin에는 사용자가 선택한 여백 너비가 포함됩니다. PSD_INHUNDREDTHSOFMILLIMETERS 또는 PSD_INTHOUSANDTHSOFINCHES 플래그는 측정 단위를 나타냅니다.

hInstance

형식: HINSTANCE

PSD_ENABLEPAGESETUPTEMPLATE 플래그가 Flags 멤버에 설정된 경우 hInstancelpPageSetupTemplateName 멤버가 명명한 대화 상자 템플릿을 포함하는 애플리케이션 또는 모듈 instance 대한 핸들입니다.

lCustData

형식: LPARAM

시스템이 lpfnPageSetupHook 멤버로 식별된 후크 프로시저에 전달하는 애플리케이션 정의 데이터입니다. 시스템에서 WM_INITDIALOG 메시지를 후크 프로시저로 보내면 메시지의 lParam 매개 변수는 대화 상자를 만들 때 지정된 PAGESETUPDLG 구조체에 대한 포인터입니다. 후크 프로시저는 이 포인터를 사용하여 lCustData 값을 가져올 수 있습니다.

lpfnPageSetupHook

형식: LPPAGESETUPHOOK

대화 상자용 메시지를 처리할 수 있는 PageSetupHook 후크 프로시저에 대한 포인터입니다. Flags 멤버에서 PSD_ENABLEPAGESETUPHOOK 플래그를 설정하지 않으면 이 멤버는 무시됩니다.

lpfnPagePaintHook

형식: LPPAGEPAINTHOOK

샘플 페이지를 다시 그릴 때마다 대화 상자에서 WM_PSD_* 메시지를 수신하는 PagePaintHook 후크 프로시저에 대한 포인터입니다. 후크 프로시저는 메시지를 처리하여 샘플 페이지의 모양을 사용자 지정할 수 있습니다. Flags 멤버에서 PSD_ENABLEPAGEPAINTHOOK 플래그를 설정하지 않으면 이 멤버는 무시됩니다.

lpPageSetupTemplateName

형식: LPCTSTR

hInstance 멤버로 식별된 모듈의 대화 상자 템플릿 리소스 이름입니다. 이 템플릿은 표준 대화 상자 템플릿으로 대체됩니다. 번호가 매겨진 대화 상자 리소스의 경우 lpPageSetupTemplateNameMAKEINTRESOURCE 매크로에서 반환되는 값일 수 있습니다. Flags 멤버에서 PSD_ENABLEPAGESETUPTEMPLATE 플래그를 설정하지 않으면 이 멤버는 무시됩니다.

hPageSetupTemplate

형식: HGLOBAL

PSD_ENABLEPAGESETUPTEMPLATEHANDLE 플래그가 Flags 멤버에 설정된 경우 hPageSetupTemplate은 대화 상자 템플릿이 포함된 메모리 개체에 대한 핸들입니다.

설명

PSD_INHUNDREDTHSOFMILLIMETERSPSD_INTHOUSANDTHSOFINCHES 플래그가 지정되지 않은 경우 시스템은 기본 사용자 로캘의 LOCALE_IMEASURE 값을 쿼리하여 여백 너비 및 용지 크기에 대한 측정 단위(밀리미터 100밀리미터 또는 천 분의 1인치)를 확인합니다.

hDevNameshDevMode 모두 유효한 핸들을 가지고 있고 DEVNAMES 구조체의 wDeviceOffset 멤버가 지정한 프린터 이름이 DEVMODE 구조체의 dmDeviceName 멤버에 지정된 이름과 같지 않은 경우 시스템은 기본적으로 wDeviceOffset에 지정된 이름을 사용합니다.

참고

commdlg.h 헤더는 PAGESETUPDLG를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 commdlg.h(Windows.h 포함)

추가 정보

일반 대화 상자 라이브러리

개념

Devmode

DEVNAMES

MAKEINTRESOURCE

기타 리소스

PagePaintHook

PageSetupDlg

PageSetupHook

참조

WM_INITDIALOG