![]() |
|
|
![]()
|
|
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Есть приложение SDI от CSCrollView.
Пытаюсь организовать свое диалоговое окно печати путем изменения стандартного окна печати. В своем окне хочу задавать область печати m_rectDraw..... и еще кое какие мелочи. http://www.sources.ru/msdn/howto/q132909.shtml http://www.codeproject.com/KB/printing/cus...x?display=Print (с работоспособным примером) Внес в проект изменения согласно вышеуказанным ссылкам и могу теперь добовлять элементы управления к стандартному окну печати. Но не могу разобраться со следующими проблемами. 1.На перегруженном диалоговом окне печати не могу организовать нормальное взаимодействие между элементами управления Combo Box, Edit Box и др. (не присваиваются переменные элементам управления, только события ) 2.Как организовать взаимодействие функций класса представления, отвечающих за печать/предпросмотр с классом CMyPrintDialog (скорее всего через указатель на класс представления из класса CMyPrintDialog)??? Возможно Вы имеете некоторый опыт создания собственного диалога вывода на печать. Заранее спасибо за ответ. Это сообщение отредактировал(а) Proletariy - 26.3.2009, 13:04 |
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Пошел немного другой дорогой.
Создал собственный диалог вывода на печать. На примере http://www.codeproject.com/KB/printing/pri...isplay=PrintAll Пока больших затруднений нет, но появился вопрос. Не бейте ногами)) На форме диалога хочу поставить кнопку предварительного просмотра. Но если я задаю идентификатор кнопки ID_FILE_PRINT_PREVIEW отображается окно предварительного просмотра с которым нельзя работать - висит. Если пишу обработчик события кнопки: OnOK(); SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW); Предпросмотр работает, но при его запуске закрывается окно диалога. Как корректно вызвать окно предпросмотра с любого произвольного диалога??? Чтобы при этом модальное диалоговое окно не закрывать. Это сообщение отредактировал(а) Proletariy - 31.3.2009, 15:26 |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Не делай вызов OnOK(); |
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
voov
Спасибо за ответ. Да я бы и рад не вызывать OnOK)) Но в таком случае виснет окно предпросмотра. Если просто писать на событие (событие в классе представления) SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW); Буду завтра опять копать. Думаю попробовать так - одновременно с OnOK(); SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW); передавать в класс представления метку BOOL и в зависимости от ее значения по завершении предпросмотра в какой нибудь функции (напр. в цикле OnPrepereDC) или в OnEndPrinting вызывать заново модальное окно диалога печати. Это сообщение отредактировал(а) Proletariy - 31.3.2009, 18:52 |
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Подниму тему.
Получилось организовать предварительный просмотр из модального диалога, но как-то очень коряво. При нажатии кнопки "Предпросмотр" на диалоге ставлю флаг m_PrintDialogStatus=TRUE, что предпросмотр осуществляется из модального диалога, закрываю окно модального диалога OnOk() и посылаю сообщение SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW); По завершении предпросмотра в циклической функции OnDraw ставлю условие, при выполнении которого модальный диалог вызывается сново 1 раз. Примерно так. if((m_PrintDialogStatus == true)&(pDC->IsPrinting() == FALSE)) { m_PrintDialogStatus = false; //Обнуляю флаг CMyPrintDialog dlg; dlg.DoModal(); } Подскажите, можно ли как то сделать это по другому? Более просто. Может предпросмотр осуществлять в новом окне? Либо что-то сделать с модальным диалогом, чтобы он не мешал?? /////////////////////////////////////////// Только дописал сообщение и нашел ответ
/////////////////////////////////////////// Но эти вопросы остались-> 1. Есть ли возможность убрать/сделать неактивной кнопку Print... в стандартном окне предпросмотра. 2. Убрать крестик закрытия стандартного окна предпросмотра, чтобы выход из режима предпросмотра осуществлялся только нажатием кнопки Close... С ув. Это сообщение отредактировал(а) Proletariy - 28.4.2009, 15:39 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |