Re: Управление количеством копий при печати
От: Patalog Россия  
Дата: 12.03.04 10:36
Оценка:
Здравствуйте, DBnew, Вы писали:

DB>    CPrintDialog dlg(FALSE,PD_ALLPAGES | PD_COLLATE | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION);
DB>    if (dlg.GetDefaults()) {
DB>        ASSERT(dlg.m_pd.hDC != NULL);
DB>        // Вот здесь устанавливаю 2-е копии
DB>        dlg.m_pd.nCopies = 2;

То что ты здесь устанавливаешь имеет смысл только лишь до вызова DoModal или GetDefaults, т.е собственно до вызова PrintDlg, ибо CPrintDialog по сути лишь обертка над этой апишной ф-ей. В данном случае у тебя получается примерно следующее —
PRINGDLG pd;
pd.Flags = PD_RETURNDC | PD_RETURNDEFAULT;
PrintDlg(&pd);
pd.nCopies = 2; //не имеет смысда ибо в этой точке DEVMODE уже сформирован

А вот далее, для установки ориентации, ты все делаешь правильно (почти, ибо я не увидел у тебя установку поля dmFields которое указывает системе какое поле структуры DEVMODE имеет смысл, а какое нет), только нужно пойти чуть дальше, и этим же способом установить кол-во копий уже в DEVMODE:
pDevMode->dmFields |= DM_COPIES;
pDevMode->dmCopies = 2;
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.