Вывод на принтер из оконного приложения
От: fstop http://juks.ru
Дата: 14.09.03 19:41
Оценка:
Оконное приложение создаёт окно. Как сделать, чтобы это окно могло инициировать печать документа?

Через AfxGetApp()->m_pMainWnd->PrintClient(CDC* DC, DWORD flags) не выходит...
Re: Вывод на принтер из оконного приложения
От: Serguei666 Беларусь  
Дата: 15.09.03 12:49
Оценка:
Здравствуйте, fstop, Вы писали:

F>Оконное приложение создаёт окно. Как сделать, чтобы это окно могло инициировать печать документа?


F>Через AfxGetApp()->m_pMainWnd->PrintClient(CDC* DC, DWORD flags) не выходит...


Вам надо печать делать самому: вызывать Print Dilaog, получать из него DC, и в DC печатать постранично.
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re[2]: Вывод на принтер из оконного приложения
От: fstop http://juks.ru
Дата: 15.09.03 16:01
Оценка:
Здравствуйте, Serguei666, Вы писали:

F>>Оконное приложение создаёт окно. Как сделать, чтобы это окно могло инициировать печать документа?

F>>Через AfxGetApp()->m_pMainWnd->PrintClient(CDC* DC, DWORD flags) не выходит...
S>Вам надо печать делать самому: вызывать Print Dilaog, получать из него DC, и в DC печатать постранично.

Вот что я нашёл на эту тему:

void CMyDialog::Print() 
{
    CDC dc;
    CPrintDialog printDlg(FALSE);

    if (printDlg.DoModal() == IDCANCEL)         // Get printer settings from user
        return;

    dc.Attach(printDlg.GetPrinterDC());         // Attach a printer DC
    dc.m_bPrinting = TRUE;

    CString strTitle;                           // Get the application title
    strTitle.LoadString(AFX_IDS_APP_TITLE);

    DOCINFO di;                                 // Initialise print document details
    ::ZeroMemory (&di, sizeof (DOCINFO));
    di.cbSize = sizeof (DOCINFO);
    di.lpszDocName = strTitle;

    BOOL bPrintingOK = dc.StartDoc(&di);        // Begin a new print job

    // Get the printing extents and store in the m_rectDraw field of a 
    // CPrintInfo object
    CPrintInfo Info;
    Info.m_rectDraw.SetRect(0,0, 
                            dc.GetDeviceCaps(HORZRES), 
                            dc.GetDeviceCaps(VERTRES));

    OnBeginPrinting(&dc, &Info);                // Call your "Init printing" funtion
    for (UINT page = Info.GetMinPage(); 
         page <= Info.GetMaxPage() && bPrintingOK; 
         page++)
    {
        dc.StartPage();                         // begin new page
        Info.m_nCurPage = page;
        OnPrint(&dc, &Info);                    // Call your "Print page" function
        bPrintingOK = (dc.EndPage() > 0);       // end page
    }
    OnEndPrinting(&dc, &Info);                  // Call your "Clean up" funtion

    if (bPrintingOK)
        dc.EndDoc();                            // end a print job
    else
        dc.AbortDoc();                          // abort job.

    dc.Detach();                                // detach the printer DC
}
Re[3]: Вывод на принтер из оконного приложения
От: Serguei666 Беларусь  
Дата: 15.09.03 17:38
Оценка:
Здравствуйте, fstop, Вы писали:

F>Вот что я нашёл на эту тему:

[...поскипано]

Отлично. То, что нужно.
Хотите сказать 'спасибо'? Тогда поставьте оценку
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.