Использование стандартных диалогов Страница 4. Отображение диалога печати
|
Страница 4 из 7
Отображение диалога печати Чтобы показать пользователю диалоговое окошко печати, позволяющее настроить параметры печати документа, сначала необходимо заполнить структуру PRINTDLG, а затем вызвать функцию PrintDlg. Для того, чтобы получить контекст устройства выбранного принтера в переменной hDC, необходимо задать флаг PD_RETURNDC в переменной Flags структуры PRINTDLG. Изначально, переменные hDevMode и hDevNames установлены в NULL. Если функция возвратит TRUE, то эти переменные будут содержать дескрипторы на структуры DEVMODE и DEVNAMES, содержащие информацию о пользовательском вводе, а так же информацию о принтере. Далее, эту информацию можно использовать для отправки данных на выбранный принтер. Пример: PRINTDLG pd; HWND hwnd;
// Заполняем PRINTDLG ZeroMemory(&pd, sizeof(pd)); pd.lStructSize = sizeof(pd); pd.hwndOwner = hwnd; pd.hDevMode = NULL; // Не забудьте освободить или сохранить hDevMode pd.hDevNames = NULL; // Не забудьте освободить или сохранить hDevNames pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; pd.nCopies = 1; pd.nFromPage = 0xFFFF; pd.nToPage = 0xFFFF; pd.nMinPage = 1; pd.nMaxPage = 0xFFFF;
if (PrintDlg(&pd)==TRUE) { // Теперь можно что-нибудь вывести на печать.
// По завершению удаляем DC. DeleteDC(pd.hDC); }
|