Использование стандартных диалогов
Страница 4. Отображение диалога печати


Отображение диалога печати

Чтобы показать пользователю диалоговое окошко печати, позволяющее настроить параметры печати документа, сначала необходимо заполнить структуру 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);
}

 
« Предыдущая статья   Следующая статья »