![]() |
|
![]() ![]() ![]() |
|
viktorrr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.3.2010 Репутация: 1 Всего: 1 |
Доброго времени суток форумчанам. Просьба сильно не критиковать, но пишу на форум в первый раз.
Очень нужна помощь в устранении глюка. Предистория: MFC CDialog программа для Visual Studio 2008 читает данные (х,у) из файла и выводит вначале на экран а затем на печать. Код по образцу как в официальных источниках. При отладке использовалась Win XP и виртуальный принтер DoPDF. Все рисуется, печатается и отлаживается. СУТЬ ГЛЮКА. Проблема обнаружилась случайно при проверке программы на другом компьютере в Win Vista Basic. Если программу запустить, открыть файл данных, сделать предварительный просмотр, НО НЕ ОТПРАВЛЯТЬ даные на печать, ТО программа закрывается и все ОК. НО ЕСЛИ отправить задание на печать, то оно напечатается нормально, И нажав кнопку закрыть программу - программа закрывается. НО процесс программы из отладки не выходит (если запускать в режиме отладки в VisStudio), а в диспетчере задач системы наблюдается отлаживаемый (или просто запущенный) процесс (так будто его никто и не закрывал). Если повисший процесс принудительно не завершить через диспетчер задач, то аналогичными манипуляциями можно получить еще один зависший процесс. В Windows XP все работает и завершается нормально. Глюк наблюдался и после перекомпиляции программы в VS2008 на машине с Vista. Также описанный глюк был и при печати из Vista на настоящий струйный принтер. Кто знает хоть что то об этом??? - HELP - даже примерно не знаю че делать и где искать - HELP - HELP - HELP----????? |
|||
|
||||
viktorrr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.3.2010 Репутация: 1 Всего: 1 |
Всем доброго времени суток.
К написанному выше можно добавить, что этот косяк разрешился весьма внезапно (точнее после манипуляций с флагами в поле xx.Flags структуры PRINTDLG). Как еще один симптом могу добавить, что в рамках "Решения", в котором есть несколько проектов, был создан еще один проект. С аналогичным кодом вызова функции печати. И почему-то в этом проекте таких глюков не наблюдается. |
|||
|
||||
viktorrr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.3.2010 Репутация: 1 Всего: 1 |
Привожу код с решением проблемы:
Здесь ключевой строкой является вот эта ... pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC | PD_PRINTSETUP; ... Если точнее, то без (.. | PD_PRINTSETUP .. ) была неполадка.
|
|||
|
||||
viktorrr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.3.2010 Репутация: 1 Всего: 1 |
ТАКЖЕ без опции .. | PD_PRINTSETUP .. диалоговое окно настройки печати выглядело вот так:
Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
viktorrr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.3.2010 Репутация: 1 Всего: 1 |
с опцией .. | PD_PRINTSETUP .. ----- вот так:
(не так красиво как прежде :( но зато заработало) Добавлено через 2 минуты и 44 секунды таким образом (хоть и непонятно как именно, наверное с помощью ![]() проблема была решена и вопрос для меня уже закрыт. Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
viktorrr, проблема не близка, но за то, что привел решение, спасибо. Возможно, кому-то поможет.
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |