Показ на экране диалогового окна Печать (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);
}

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz