В этом разделе описывается пример кода, который отображает диалоговое окно Печать , так что пользователь сможет выбрать параметры для печати документа. В образце кода сначала инициализирующего структуру PRINTDLG , а затем вызывает функцию PrintDlg для отображения диалогового окна.
Этот пример устанавливает флаг PD_RETURNDC в флаги член PRINTDLG структуры. Это приводит к PrintDlg возвратить дескриптор контекста устройства для выбранного принтера в hDC -членов. Маркер можно использовать для отображения выходных данных на принтере.
На входе пример кода задает членов hDevMode и hDevNames в значение NULL. Если функция возвращает значение TRUE, эти члены вернуть ручки для DEVMODE и DEVNAMES, относящейся структур, содержащих введенный пользователем и сведений о принтере. Можно использовать эту информацию для подготовки вывода следует направлять на выбранном принтере.
PRINTDLG pd;
HWND hwnd;
/ / Инициализировать PRINTDLG
ZeroMemory (amp; pd, sizeof(PRINTDLG));
PD.lStructSize = sizeof(PRINTDLG);
PD.hwndOwner = hwnd;
PD.hDevMode = NULL; / / Не забудьте освободить или хранить hDevMode.
PD.hDevNames = NULL; / / Не забудьте освободить или хранить hDevNames.
ПД.Флаги = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
PD.nCopies = 1;
PD.nFromPage = 0xFFFF;
PD.nToPage = 0xFFFF;
PD.nMinPage = 1;
PD.nMaxPage = 0xFFFF;
Если (PrintDlg(&pd) == TRUE) {}
/ / GDI вызывается для отображения выходных данных.
/ / Delete DC когда сделано.
DeleteDC(pd.hDC);
}