Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> kak napechatati DC na printere? 
:(
    Опции темы
Guest_leo
  Дата 11.3.2003, 07:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Esti DC s risunkom.Kak wiwesti eto na printer?(Bes CView, is Dialoga)?
  Вверх
Paradox
Дата 11.3.2003, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



А если генерить WM_PRINT ?


--------------------
---
PM MAIL WWW   Вверх
Guest_leo
Дата 11.3.2003, 23:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











a tochnee?
  Вверх
Paradox
Дата 12.3.2003, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



Поглядел MSDN, че-то нашел... если есть погляди сам, если нет еще че-нить вырежу...
Цитата
This method informs the device driver that a new print job is starting and that all subsequent StartPage and EndPage calls should be spooled under the same job until an EndDoc call occurs.

int StartDoc(
LPCTSTR lpszDocName );

int StartDoc(
LPDOCINFO lpDocInfo );
Parameters
lpszDocName
Pointer to a null-terminated string that specifies the name of the document.
lpDocInfo
Pointer to a DOCINFO structure containing the name of the document file and the name of the output file.
Return Value
The value –1 if there is an error such as insufficient memory or an invalid port specification occurs; otherwise, a positive value.

Remarks
For Windows versions 3.1 and later, this method replaces the STARTDOC printer escape. Using this method ensures that documents containing more than one page are not interspersed with other print jobs.

StartDoc should not be used inside metafiles.

Example

This code fragment gets the default printer, opens a print job, and spools one page with Hello, World! on it.

// Get the default printer.
CPrintDialog dlg(FALSE);
dlg.GetDefaults();

// Is a default printer set up?
HDC hdcPrinter = dlg.GetPrinterDC();
if (hdcPrinter == NULL)
{
  MessageBox(_T("Buy a printer!"));
}
else
{
  // Create a CDC and attach it to the default printer.
  CDC dcPrinter;
  dcPrinter.Attach(hdcPrinter);

  // Call StartDoc() to begin printing.
  DOCINFO docinfo;
  memset(&docinfo, 0, sizeof(docinfo));
  docinfo.cbSize = sizeof(docinfo);
  docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

  // If it fails, complain and exit gracefully.
  if (dcPrinter.StartDoc(&docinfo) < 0)
  {
      MessageBox(_T("Printer would not initalize"));
  }
  else
  {
      // Start a page.
      if (dcPrinter.StartPage() < 0)
      {
        MessageBox(_T("Could not start page"));
        dcPrinter.AbortDoc();
      }
      else
      {
        // Do some printing.
        CGdiObject* pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

        dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

        dcPrinter.EndPage();
        dcPrinter.EndDoc();
        dcPrinter.SelectObject(pOldFont);
      }
  }
}



--------------------
---
PM MAIL WWW   Вверх
Paradox
Дата 12.3.2003, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



На счет WM_PRINT я наверно подогнался smile.gif


--------------------
---
PM MAIL WWW   Вверх
-=Baa=-
Дата 12.3.2003, 01:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А вот без MFC.
Код

PRINTDLG pd;
// Initialize PRINTDLG
ZeroMemory(&pd, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
pd.hwndOwner   = m_hWnd;
pd.hDevMode    = NULL;     // Don't forget to free or store hDevMode
pd.hDevNames   = NULL;     // Don't forget to free or store hDevNames
pd.Flags       = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
pd.nCopies     = 1;
pd.nFromPage   = 0xFFFF;
pd.nToPage     = 0xFFFF;
pd.nMinPage    = 1;
pd.nMaxPage    = 0xFFFF;

PrintDlg(&pd);

HDC dc = ::GetDC (m_hWnd);
 TextOut (dc, 10, 10, "Test", 4);
 DOCINFO di;
 memset(&di, 0, sizeof(DOCINFO));
 di.cbSize = sizeof(DOCINFO);
 di.lpszDocName = "Bitmap Printing Test";
 di.lpszOutput = (LPTSTR) NULL;
 di.lpszDatatype = (LPTSTR) NULL;
 di.fwType = 0;
 StartDoc (pd.hDC, &di);
 BitBlt (pd.hDC, 0, 0, 100, 100, dc, 0, 0, SRCCOPY);
 EndDoc (pd.hDC);
::ReleaseDC (m_hWnd, dc);
DeleteDC(pd.hDC);

  Вверх
Guest_leo
Дата 12.3.2003, 03:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Bolshoe spasibo Paradox.
leo
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.