이 항목에서는 사용자 용지 종류, 용지 공급, 용지 방향 및 페이지 여백 등 인쇄 된 페이지의 특성을 선택할 수 있도록 페이지 설정 대화 상자를 표시 하는 샘플 코드를 설명 합니다. 샘플 코드를 먼저 PAGESETUPDLG 구조를 초기화 하 고 대화 상자를 표시 하려면 PageSetupDlg 함수를 호출 하는 다음.
이 예제에서는 플래그 구성원에서 PSD_MARGINS 플래그를 설정 하 고 rtMargin 멤버를 사용 하 여 초기 여백 값을 지정 합니다. 대화 상자 1/1000 인치 여백 치수를 표현 하 고 있는지 확인 하려면 PSD_INTHOUSANDTHSOFINCHES 플래그를 설정 하는 그것.
입력에 샘플 코드는 NULL로 hDevMode 및 hDevNames 멤버를 설정합니다. 함수 이러한 멤버를 사용 하 여 핸들을 반환 하는 함수에서 TRUE를 반환 하는 경우 DEVMODE 와 DEVNAMES 구조에서 사용자의 입력을 포함 하 고 프린터에 대 한 정보. 이 정보를 사용 하 여 선택한 프린터로 보낼 출력 준비.
예제에서는 또한 그리기 샘플 페이지의 내용을 사용자 지정 하려면 PagePaintHook 후크 프로시저를 사용 하면.
PAGESETUPDLG psd; / / 일반 대화 상자 구조
HWND hwnd; / / 소유자 창
/ / 초기화 PAGESETUPDLG
ZeroMemory (amp; psd, sizeof(PAGESETUPDLG));
psd.lStructSize = sizeof(PAGESETUPDLG);
psd.hwndOwner = hwnd;
psd.hDevMode = NULL; / / 무료 또는 hDevMode 저장 하는 것을 잊지 마세요.
psd.hDevNames = NULL; / / 무료 또는 저장 하는 것을 잊지 마세요
Hdevnames입니다.
psd입니다.플래그 = PSD_INTHOUSANDTHSOFINCHES (ko) | PSD_MARGINS |
PSD_ENABLEPAGEPAINTHOOK;
psd.rtMargin.top = 1000;
psd.rtMargin.left = 1250;
psd.rtMargin.right = 1250;
psd.rtMargin.bottom = 1000;
psd.lpfnPagePaintHook = PaintHook;
경우 (PageSetupDlg(&psd) = TRUE) {
/ / 용지 크기와 여백 값 여기 체크
}
다음 예제에서는 샘플 페이지 영역에서 여백 사각형을 그리는 예제 PagePaintHook 후크 프로시저를 보여 줍니다.:
BOOL 콜백 PaintHook (hwndDlg HWND, UINT uMsg, WPARAM wParam, LPARAM lParam) {LPRECT lprc;
COLORREF crMargRect;
HDC hdc, hdcOld;
스위치 (uMsg) {/ / 여백 사각형 그리기.
WM_PSD_MARGINRECT 경우: hdc (HDC) wParam; =
lprc = (LPRECT) lParam;
/ / 시스템 강조 색을 얻을.
crMargRect = GetSysColor(COLOR_HIGHLIGHT);
/ 시스템 강조 색상의 대시-도트 펜 만들기 / 및 / / 샘플 페이지의 DC로 선택 합니다.
hdcOld = SelectObject (hdc, CreatePen (PS_DASHDOT,.5, crMargRect));
/ / 여백 사각형을 그립니다.
사각형 (hdc, lprc gt; 왼쪽, lprc-> 톱, lprc-> 오른쪽, lprc-> 아래);
/ / DC에 이전 펜을 복원 합니다.
SelectObject (hdc, hdcOld);
TRUE를 반환 합니다.
기본값: FALSE; 반환
} TRUE를 반환 합니다.
}