PRINTDLGW 구조체(commdlg.h)
PrintDlg 함수가 인쇄 대화 상자초기화하는 데 사용하는 정보를 포함합니다. 사용자가 대화 상자를 닫은 후 시스템은 이 구조를 사용하여 사용자의 선택 항목에 대한 정보를 반환합니다.
통사론
typedef struct tagPDW {
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
HDC hDC;
DWORD Flags;
WORD nFromPage;
WORD nToPage;
WORD nMinPage;
WORD nMaxPage;
WORD nCopies;
HINSTANCE hInstance;
LPARAM lCustData;
LPPRINTHOOKPROC lpfnPrintHook;
LPSETUPHOOKPROC lpfnSetupHook;
LPCWSTR lpPrintTemplateName;
LPCWSTR lpSetupTemplateName;
HGLOBAL hPrintTemplate;
HGLOBAL hSetupTemplate;
} PRINTDLGW, *LPPRINTDLGW;
회원
lStructSize
형식: DWORD
구조체 크기(바이트)입니다.
hwndOwner
형식: HWND
대화 상자를 소유하는 창에 대한 핸들입니다. 이 멤버는 유효한 창 핸들이거나 대화 상자에 소유자가 없는 경우 NULL
hDevMode
형식: HGLOBAL
DEVMODE 구조체를 포함하는 이동 가능한 전역 메모리 개체에 대한 핸들입니다.
지정한 프린터의 디바이스 드라이버가 확장된 디바이스 모드를 지원하지 않는 경우
DEVMODE 구조체의 dmDeviceName 멤버로 지정된 디바이스 이름이 WIN의 [devices] 섹션에 표시되지 않는 경우 INI, PrintDlg 오류를 반환합니다.
hDevMode 및 hDevNames 멤버에 대한 자세한 내용은 이 항목의 끝에 있는 설명 섹션을 참조하세요.
hDevNames
형식: HGLOBAL
DEVNAMES 구조체를 포함하는 이동 가능한 전역 메모리 개체에 대한 핸들입니다.
hDevMode 및 hDevNames 멤버에 대한 자세한 내용은 이 항목의 끝에 있는 설명 섹션을 참조하세요.
hDC
형식: HDC
Flags 멤버가 PD_RETURNDC 또는 PC_RETURNIC 플래그를 지정하는지 여부에 따라 디바이스 컨텍스트 또는 정보 컨텍스트에 대한 핸들입니다. 플래그를 지정하지 않으면 이 멤버의 값이 정의되지 않습니다. 두 플래그를 모두 지정하면 PD_RETURNDC 우선 순위가 지정됩니다.
Flags
형식: DWORD
인쇄 대화 상자를 초기화합니다. 대화 상자가 반환되면 이러한 플래그를 설정하여 사용자의 입력을 나타냅니다. 이 멤버는 다음 값 중 하나 이상일 수 있습니다.
값 | 의미 |
---|---|
|
모든 라디오 단추가 처음에 선택되었음을 나타내는 기본 플래그입니다. 이 플래그는 PD_PAGENUMS 및 PD_SELECTION 플래그가 지정되지 않았음을 나타내는 자리 표시자로 사용됩니다. |
|
이 플래그를 설정하면 데이터 정렬 확인란이 선택됩니다.
PrintDlg 함수가 반환될 때 이 플래그가 설정되면 애플리케이션은 여러 복사본의 데이터 정렬을 시뮬레이션해야 합니다. 자세한 내용은 PD_USEDEVMODECOPIESANDCOLLATE 플래그에 대한 설명을 참조하세요. PD_NOPAGENUMS참조하세요. |
|
파일 |
|
lpfnPrintHook 멤버에 지정된 후크 프로시저를 사용하도록 설정합니다. 이렇게 하면 인쇄 대화 상자에 후크 프로시저가 활성화됩니다. |
|
hInstance 및 lpPrintTemplateName 멤버가 기본 인쇄 대화 상자 서식 파일의 대체를 지정함을 나타냅니다. |
|
hPrintTemplate 멤버가 미리 로드된 대화 상자 템플릿을 포함하는 데이터 블록을 식별함을 나타냅니다. 이 템플릿은 인쇄 대화 상자의 기본 서식 파일을 대체합니다. 이 플래그가 지정된 경우 시스템에서 lpPrintTemplateName 멤버를 무시합니다. |
|
lpfnSetupHook 멤버에 지정된 후크 프로시저를 사용하도록 설정합니다. 이렇게 하면 인쇄 설치 대화 상자에 대한 후크 프로시저가 활성화됩니다. |
|
hInstance 및 lpSetupTemplateName 멤버가 기본 인쇄 설치 대화 상자 서식 파일의 대체를 지정함을 나타냅니다. |
|
hSetupTemplate 멤버가 미리 로드된 대화 상자 템플릿을 포함하는 데이터 블록을 식별함을 나타냅니다. 이 템플릿은 인쇄 설치 대화 상자의 기본 서식 파일을 대체합니다. 이 플래그가 지정된 경우 시스템에서 lpSetupTemplateName 멤버를 무시합니다. |
|
파일 |
|
네트워크 단추를 숨기고 사용하지 않도록 설정합니다. |
|
Pages 라디오 단추 및 연결된 편집 컨트롤을 사용하지 않도록 설정합니다. 또한 데이터 정렬 확인란이 대화 상자에 나타납니다. |
|
선택 라디오 단추를 사용하지 않도록 설정합니다. |
|
기본 프린터가 없을 때 경고 메시지가 표시되지 않도록 합니다. |
|
이 플래그를 설정하면 페이지 라디오 단추가 선택됩니다. PrintDlg 함수가 반환될 때 이 플래그가 설정되면 nFromPage 및 nToPage 멤버는 사용자가 지정한 시작 및 끝 페이지를 나타냅니다. |
|
시스템에서 인쇄 대화 상자 대신 인쇄 설정 대화 상자를 표시합니다. |
|
이 플래그가 설정되면 파일 인쇄 확인란이 선택됩니다. PrintDlg 함수가 반환될 때 이 플래그가 설정되면 DEVNAMES 구조체의 wOutputOffset 멤버가 나타내는 오프셋에는 "FILE:" 문자열이 포함됩니다. StartDoc 함수를 호출하여 인쇄 작업을 시작할 때 DOCINFO 구조체의 lpszOutput 멤버에서 이 "FILE:" 문자열을 지정합니다. 이 문자열을 지정하면 인쇄 하위 시스템이 출력 파일의 이름을 사용자에게 쿼리합니다. |
|
PrintDlg 사용자가 대화 상자에서 선택한 항목과 일치하는 디바이스 컨텍스트를 반환하도록 합니다. 디바이스 컨텍스트는 hDC반환됩니다. |
|
이 플래그를 설정하면 PrintDlg 함수에 대화 상자가 표시되지 않습니다. 대신 |
|
PD_RETURNDC 플래그와 비슷하지만 이 플래그는 디바이스 컨텍스트가 아닌 정보 컨텍스트를 반환합니다. PD_RETURNDCPD_RETURNIC 지정하지 않으면 출력에 hDC 정의되지 않습니다. |
|
이 플래그를 설정하면 선택 라디오 단추가 선택됩니다. PD_PAGENUMS 또는 PD_SELECTION 설정되지 않은 경우 모든 라디오 단추가 선택됩니다. |
|
대화 상자에 도움말 단추가 표시되도록 합니다. hwndOwner 멤버는 사용자가 도움말 단추를 클릭할 때 대화 상자에서 보내는 HELPMSGSTRING 등록된 메시지를 받을 창을 지정해야 합니다. |
|
PD_USEDEVMODECOPIESANDCOLLATE. |
|
이 플래그는 애플리케이션이 여러 복사본 및 데이터 정렬을 지원하는지 여부를 나타냅니다. 입력에 이 플래그를 설정하여 애플리케이션이 여러 복사본 및 데이터 정렬을 지원하지 않음을 나타냅니다. 이 경우 PRINTDLG 구조체의 nCopies 멤버는 항상 1을 반환하며 PD_COLLATEFlags 멤버에 설정되지 않습니다.
이 플래그가 설정되지 않은 경우 애플리케이션은 여러 복사본을 인쇄하고 정렬합니다. 이 경우 PRINTDLG 구조의 nCopies 멤버는 사용자가 인쇄하려는 복사본 수를 나타내고 Flags 멤버의 PD_COLLATE 플래그는 사용자가 데이터 정렬을 원하는지 여부를 나타냅니다. 이 플래그가 설정되었는지 여부에 관계없이 애플리케이션은 nCopies 결정하고 렌더링할 복사본 수와 데이터 정렬된 복사본을 인쇄할지 여부를 PD_COLLATE 수 있습니다. 이 플래그가 설정되어 있고 프린터 드라이버가 여러 복사본을 지원하지 않는 경우 복사본 편집 컨트롤이 비활성화됩니다. 마찬가지로 이 플래그가 설정되어 있고 프린터 드라이버가 데이터 정렬을 지원하지 않는 경우 데이터 정렬 확인란을 사용할 수 없습니다. DEVMODE 구조체의 dmCopies 및 dmCollate 멤버에는 프린터 드라이버에서 사용하는 복사본 및 데이터 정렬 정보가 포함됩니다. 이 플래그가 설정되고 프린터 드라이버가 여러 복사본을 지원하는 경우 dmCopies 멤버는 사용자가 요청한 복사본 수를 나타냅니다. 이 플래그가 설정되고 프린터 드라이버가 데이터 정렬을 지원하는 경우 DEVMODE 구조의 dmCollate 멤버는 사용자가 데이터 정렬을 원하는지 여부를 나타냅니다. 이 플래그를 설정하지 않으면 dmCopies 멤버는 항상 1을 반환하고 dmCollate 멤버는 항상 0입니다.
Windows 2000/XP/2003에서 알려진 문제:PrintDlg호출하기 전에 이 플래그가 설정되지 않은 경우 PrintDlg 반환 시 nCopies 및 dmCopies 값을 교환할 수 있습니다. 이 문제에 대한 해결 방법은 |
Windows Vista 및 Windows 7에서
GDI를 호출할 때는 nCopies값을 무시하고 값을 1로 간주하고 반환된 hDC를 사용하여 중복 복사본을 인쇄하지 않도록 해야 합니다.
nFromPage
형식: WORD
시작 페이지 편집 컨트롤의 초기 값입니다.
PrintDlg 반환되면 nFromPage 사용자가 지정한 시작 페이지입니다. 사용자가 확인 단추를 클릭할 때 페이지 라디오 단추를 선택하면 PrintDlgPD_PAGENUMS 플래그를 설정하고 사용자가 최소 페이지 범위에서 최대 페이지 범위 내에 있는 시작 페이지 값을 입력할 때까지 반환되지 않습니다.
nFromPage 또는 nToPage 입력 값이 최소/최대 범위를 벗어나면 PrintDlgPD_PAGENUMS 플래그가 지정된 경우에만 오류를 반환합니다. 그렇지 않으면 대화 상자가 표시되지만 범위를 벗어난 값을 최소 또는 최대값으로 변경합니다.
nToPage
형식: WORD
끝 페이지 편집 컨트롤의 초기 값입니다. PrintDlg 반환되면 nToPage 사용자가 지정한 끝 페이지입니다. 페이지 라디오 단추를 선택한 경우 확인 단추를 클릭하면 PrintDlgPD_PAGENUMS 플래그를 설정하고 사용자가 최소 최대 페이지 범위 내의 끝 페이지 값을 입력할 때까지 반환되지 않습니다.
nMinPage
형식: WORD
From 및 To 페이지 편집 컨트롤에 지정된 페이지 범위의 최소값입니다.
nMaxPage
형식: WORD
From 및 To 페이지 편집 컨트롤에 지정된 페이지 범위의 최대값입니다.
nCopies
형식: WORD
hInstance
형식: HINSTANCE
PD_ENABLEPRINTTEMPLATE 또는 PD_ENABLESETUPTEMPLATE 플래그가 Flags 멤버에 설정된 경우 hInstancelpPrintTemplateName 또는 lpSetupTemplateName 멤버로 명명된 대화 상자 템플릿이 포함된 애플리케이션 또는 모듈 인스턴스에 대한 핸들입니다.
lCustData
형식: LPARAM
시스템에서 lpfnPrintHook 또는 lpfnSetupHook 멤버로 식별된 후크 프로시저에 전달하는 애플리케이션 정의 데이터입니다. 시스템에서 후크 프로시저에 WM_INITDIALOG 메시지를 보낼 때 메시지의 lParam 매개 변수는 대화 상자를 만들 때 지정된 PRINTDLG 구조체에 대한 포인터입니다. 후크 프로시저는 이 포인터를 사용하여 lCustData 값을 가져올 수 있습니다.
lpfnPrintHook
형식: LPPRINTHOOKPROC
인쇄 대화 상자에 대한 메시지를 처리할 수 있는 PrintHookProc 후크 프로시저에 대한 포인터입니다. Flags 멤버에서 PD_ENABLEPRINTHOOK 플래그를 설정하지 않으면 이 멤버는 무시됩니다.
lpfnSetupHook
형식: LPSETUPHOOKPROC
인쇄 설정 대화 상자에 대한 메시지를 처리할 수 있는 SetupHookProc 후크 프로시저에 대한 포인터입니다. PD_ENABLESETUPHOOK 플래그가 Flags 멤버에 설정되지 않는 한 이 멤버는 무시됩니다.
lpPrintTemplateName
형식: LPCTSTR
hInstance 멤버로 식별되는 모듈의 대화 상자 템플릿 리소스 이름입니다. 이 템플릿은 기본 인쇄 대화 상자 서식 파일을 대체합니다. Flags 멤버에서 PD_ENABLEPRINTTEMPLATE 플래그를 설정하지 않으면 이 멤버는 무시됩니다.
lpSetupTemplateName
형식: LPCTSTR
hInstance 멤버로 식별되는 모듈의 대화 상자 템플릿 리소스 이름입니다. 이 템플릿은 기본 인쇄 설정 대화 상자 서식 파일을 대체합니다. PD_ENABLESETUPTEMPLATE 플래그가 Flags 멤버에 설정되지 않으면 이 멤버는 무시됩니다.
hPrintTemplate
형식: HGLOBAL
PD_ENABLEPRINTTEMPLATEHANDLE 플래그가 Flags 멤버에 설정된 경우 hPrintTemplate 대화 상자 템플릿을 포함하는 메모리 개체에 대한 핸들입니다. 이 템플릿은 기본 인쇄 대화 상자 서식 파일을 대체합니다.
hSetupTemplate
형식: HGLOBAL
PD_ENABLESETUPTEMPLATEHANDLE 플래그가 Flags 멤버에 설정된 경우 hSetupTemplate 대화 상자 템플릿을 포함하는 메모리 개체에 대한 핸들입니다. 이 템플릿은 기본 인쇄 설정 대화 상자 서식 파일을 대체합니다.
발언
DEVMODE 구조체의 dmDeviceName 멤버도 프린터 이름을 지정합니다. 그러나 dmDeviceName 32자로 제한되며 wDeviceOffset 이름은 그렇지 않습니다. wDeviceOffset 및 dmDeviceName 이름이 같지 않으면 PrintDlgwDeviceOffset지정된 프린터를 사용하여 대화 상자를 초기화합니다.
메모
commdlg.h 헤더는 PRINTDLG를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
헤더 | commdlg.h(Windows.h 포함) |
참고 항목
개념
DEVMODE
DEVNAMES
PrintDlg
참조