У цьому розділі описано приклад коду, який відображає діалогове вікно Параметри сторінки , так що користувач може вибрати атрибути друкованої сторінки, такі як тип паперу, джерело паперу, орієнтацію сторінки та полів сторінки. Приклади коду першу ініціалізує PAGESETUPDLG структуру а потім викликає функцію PageSetupDlg , щоб відобразити діалогове вікно.
У цьому прикладі множин прапор PSD_MARGINS член прапори і використовує rtMargin член, щоб вказати значення початкового полів. Він встановлює PSD_INTHOUSANDTHSOFINCHES прапор, щоб переконатися, що діалогове вікно висловлює розміри полів у тисячну дюйма.
На введення зразки коду набору членів hDevMode і hDevNames значення null. Якщо функція повертає 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 | 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 (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {LPRECT lprc;
COLORREF crMargRect;
HDC hdc, hdcOld;
перемикач (uMsg) {/ / малювання полів прямокутника.
справа WM_PSD_MARGINRECT: hdc = wParam (HDC);
lprc = lParam (LPRECT);
/ / Отримати колір виділення системи.
crMargRect = GetSysColor(COLOR_HIGHLIGHT);
/ / Створення штрихпунктир пера колір виділення системи і / / виділити його в DC зразок сторінки.
hdcOld = об'єкт (hdc, CreatePen (PS_DASHDOT,.5, crMargRect));
/ / Намалювати прямокутник полів.
Прямокутник (hdc, lprc gt; ліворуч, lprc - > Топ, lprc - > правою, lprc - > нижній);
/ / Відновлення попередніх пера для постійного струму.
Об'єкт (hdc, hdcOld);
повертає TRUE;
за замовчуванням: повернення ПОМИЛКОВИХ;
} повернути TRUE;
}