Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Печать и Предварительны Просмотор


Автор: bek08 20.12.2010, 09:24
Всем привет ребята как сделать Печать и Предпросмотор из диалога. Подскажите пожалуйста гугл. не помог.! Visual C++ 6 Основа Диалог.
Помогите пожалуйста очень нужен!!!
вот что нашел но как сделать предпросмотр не знаю?
Код

void CPrint_2Dlg::OnOK() 
{
CPrintDialog cp(FALSE);                                                 // выбираем принтер
if (cp.DoModal()==IDOK)                                                 // если выбрали
{
  CDC PrintDC;                                                          // контекст принтера
  PrintDC.Attach(cp.GetPrinterDC());                                    // получаем контекст принтера
  DOCINFO infStru;                                                      // структура с информацией
  ::ZeroMemory (&infStru, sizeof (DOCINFO));                            // обнулить
   CString title="step 45 ";
  infStru.cbSize = sizeof (DOCINFO);                                    // заполняем структуру
  infStru.lpszDocName=title;
  infStru.lpszOutput=NULL;
  if (PrintDC.StartDoc(&infStru )==-1)AfxMessageBox("Error StartDoc") ; // Начало документа
  PrintDC.StartPage();                                                  // начало страницы
  PrintDC.MoveTo(10,10);                                                // рисуем
  PrintDC.LineTo(100,100);
  if (PrintDC.EndPage()<0) AfxMessageBox("Error EndPage");              // конец страницы
  if (PrintDC.EndDoc()==0) AfxMessageBox("Error EndDoc");               // конец документа
  PrintDC.Detach();                                                     // отсоединить контекст
}
  
}


Автор: Earnest 20.12.2010, 12:34
Сделай себе SDI-приложение с печатью, там тебе все визард подготовит. Или поищи по форуму - печать обсуждалась в нескольких темах.

Автор: bek08 20.12.2010, 12:42
SDI не получется мне надо будет вес проект заново писать по а форуме не нашел подходящего тему 
вобше это возможно на диалога ? 

Автор: Earnest 20.12.2010, 13:05
Используй SDI-проект как пример; спишешь потом нужные слова. Конечно, можно и на диалоге, только визард функции печати не сгенерирует, самому нужно. Вот я и говорю как проще поступить. Но не рассчитывай, что сможешь сделать, хоть минимально не разбираясь. Здесь вам не Борланд. 
Искал на форуме плохо. Может и не в диалоговом приложении, но про печать точно было не раз.

Автор: Dreamer_0x01 20.12.2010, 13:23
Вот в этой ветке я приводил код печати из диалога.
http://forum.vingrad.ru/forum/topic-316414.html
Но проблема со StretchBlt, описанная в этой ветке, все еще в силе. Она вам не помешает, если будите рисовать сами в контекст принтера.

Автор: bek08 20.12.2010, 15:22
Dreamer_0x01, В товоем примере нет предпросмотро не ужели ни кто ранше не столкивался такой проблемой ?
Спасибо вам за ответи! Вопрос ешо актуально !
Может дадите ссылки !

Автор: bek08 21.12.2010, 14:32
Могу заплатит за услуги! тема актуально жду!

Автор: Dreamer_0x01 21.12.2010, 15:33
Цитата(bek08 @  20.12.2010,  12:42 Найти цитируемый пост)
SDI не получется мне надо будет вес проект заново писать


Не обязательно. Можно сделать костыль - создасть пустое SDI приложение, а в него в клиентскую область вставить ваш готовый диалог.

Автор: Earnest 21.12.2010, 16:27
bek08, предложения работы нужно постить в соответствующий раздел. А здесь - только консультации.

Автор: bek08 21.12.2010, 17:19
Цитата(Earnest @  21.12.2010,  16:27 Найти цитируемый пост)
bek08, предложения работы нужно постить в соответствующий раздел. А здесь - только консультации. 

Извините модератор за это действие !

Добавлено через 4 минуты и 11 секунд
Цитата(Dreamer_0x01 @  21.12.2010,  15:33 Найти цитируемый пост)
Не обязательно. Можно сделать костыль - создасть пустое SDI приложение, а в него в клиентскую область вставить ваш готовый диалог.
 Не получетсся проект не маленкий!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)