Win32 API. Библиотека стандартных диалоговых окон - Отображение диалогового окна Печать (Print)

ОГЛАВЛЕНИЕ

 

Отображение диалогового окна Печать (Print)

Эта статья описывает типовой код, который показывает диалоговое окно Печать (Print), так что пользователь может выбирать параметры для печати документа. Типовой код сначала инициализирует структуру PRINTDLG, а затем вызывает функцию PrintDlg, чтобы показать диалоговое окно.

Этот пример устанавливает флажок PD_RETURNDC в элементе Flags структуры PRINTDLG. Это заставляет функцию PrintDlg возвратить в элементе hDC дескриптор контекста устройства для выбранного принтера. Вы можете использовать дескриптор, чтобы выполнить вывод данных на принтер.

При вводе данных, типовой код устанавливает элементы hDevMode и hDevNames в значение ПУСТО (NULL). Если функция возвращает значение ИСТИНА (TRUE), эти элементы возвращают дескрипторы структурам DEVMODE и DEVNAMES, содержащим вводимые данные пользователем и информацию о принтере. Вы можете использовать эту информацию, чтобы подготовить вывод данных, которые будут пересланы в выбранный принтер.

PRINTDLG pd;
HWND hwnd;

// Инициализация PRINTDLG.
ZeroMemory(&pd, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
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)
{
// GDI обращается к выполнению вывода данных.
// После выполнения удаляем DC.

DeleteDC(pd.hDC);
}