Реализуете свой предварительный просмотр? - PullRequest
5 голосов
/ 23 июня 2009

Я разработал свой собственный Report Control, который просто представляет собой рисование текста на CDC клиентского DC окна управления. У меня тоже есть функция печати. Вывод отчета отправляется на принтер напрямую. Однако я хочу дать пользователю знать результат до того, как отчет будет напечатан.

Я не могу сделать это с помощью архитектуры предварительного просмотра печати MFC, поскольку в моем проекте не используется архитектура doc / view. Могу ли я самостоятельно создать окно предварительного просмотра? Как MFC справляется с этим? Нужно ли выполнять какую-либо специальную обработку или иметь в виду, когда вывод принтера выводится на экран? Я читал, что MFC использовал 2 DC для предварительного просмотра. Нужно ли мне это делать, если я собираюсь сделать предварительный просмотр?

Ваш вклад высоко ценится! ТИА.

P.S. я использую Visual Studio 6, и нет возможности изменить его на более новую версию, так как у меня нет возможности добавить поддержку doc / view.

Ответы [ 4 ]

0 голосов
/ 29 апреля 2016

В MFC есть класс CPreviewView. Может быть, вы можете найти способ его создания без структуры MDI.

В противном случае вы можете просто рисовать на экране все, что рисуете на принтере DC. Просто помните, что вам, вероятно, понадобится уменьшить его для более низкого dpi.

0 голосов
/ 26 июня 2009

Я настроил этот код , чтобы скомпилировать его как статическую библиотеку. Он предназначен для диалоговых приложений.
Если вам не нужны специальные функции, он будет работать нормально.

Мне пришлось копаться в механизмах MFC, чтобы добавить дополнительную функциональность, но в конце концов я ее отбросил. Если вы знаете другие языки программирования, попробуйте найти элемент управления предварительным просмотром на этом языке, сделайте его dll и используйте его из своего приложения MFC.

Например, я нашел элемент управления NicePreview для Delphi, и он работал, для меня, красиво !

0 голосов
/ 26 июня 2009

, если вам удалось распечатать вывод в файл в формате RTF и отобразить его на экране, это решило бы проблему?

0 голосов
/ 23 июня 2009

Предварительный просмотр печати не такой уж особенный. Это просто означает, что вы должны визуализировать на экран (или растровое изображение) то, что в противном случае визуализировали бы на DC принтера. Это в первую очередь означает использование размера страницы и предоставление элемента управления UI для предыдущей / следующей страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...