печать bitmap...
От: tris  
Дата: 24.01.07 15:09
Оценка:
Проблемы появлялись не раз судя по поиску, но во всех темах печать представляла собой отдельную функцию с вызовом прин диалога ну и т.д
Может быть, кто-то может привести пример использования стандартной OnPrint().
Необходимо вывести на печать битмап из clipboard. Вот как я попытался это сделать:

void CClipView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
    if (handle)
    {    
        CBitmap * bm = CBitmap::FromHandle(handle);
        BITMAP bit;
        bm->GetBitmap(&bit);
        CDC dc;
        dc.CreateCompatibleDC(pDC);
        dc.SelectObject(bm);
        pDC->SetMapMode(MM_ANISOTROPIC);
        int maxW=pDC->GetDeviceCaps(HORZRES);
        int maxH=pDC->GetDeviceCaps(VERTRES);
        pDC->StretchBlt(0,0,maxW,maxH,&dc,0,0,bit.bmWidth,bit.bmHeight,SRCCOPY);

        CView::OnDraw(pDC);
    }
        
}


Вообщем предпросмотр работает, а печатать отказывается. Если не трудно поправьте меня, ну или если есть что-то готовое, то тоже будет хорошо.
Re: печать bitmap...
От: tris  
Дата: 27.01.07 12:12
Оценка:
неужели никто не знает
Re: печать bitmap...
От: Аноним  
Дата: 29.01.07 10:42
Оценка:
Здравствуйте, tris, Вы писали:

T>Необходимо вывести на печать битмап из clipboard. Вот как я попытался это сделать:



Может так:

void CClipView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
    if (handle)
    {    
        CBitmap * bm = CBitmap::FromHandle(handle);
        BITMAP bit;
        bm->>GetBitmap(&bit);
        CDC dc;
        dc.CreateCompatibleDC(pDC);
        dc.SelectObject(bm);
        pDC->>SetMapMode(MM_ANISOTROPIC);
        int maxW=pDC->GetDeviceCaps(HORZRES);
        int maxH=pDC->GetDeviceCaps(VERTRES);
        pDC->>StretchBlt(0,0,maxW,maxH,&dc,0,0,bit.bmWidth,bit.bmHeight,SRCCOPY);

        CClipView::OnDraw(pDC);
    }
        
}

?
Re[2]: печать bitmap...
От: tris  
Дата: 30.01.07 08:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, tris, Вы писали:


T>>Необходимо вывести на печать битмап из clipboard. Вот как я попытался это сделать:



А>Может так:


А>
А>void CClipView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
А>{
А>    if (handle)
А>    {    
А>        CBitmap * bm = CBitmap::FromHandle(handle);
А>        BITMAP bit;
        bm->>>GetBitmap(&bit);
А>        CDC dc;
А>        dc.CreateCompatibleDC(pDC);
А>        dc.SelectObject(bm);
        pDC->>>SetMapMode(MM_ANISOTROPIC);
А>        int maxW=pDC->GetDeviceCaps(HORZRES);
А>        int maxH=pDC->GetDeviceCaps(VERTRES);
        pDC->>>StretchBlt(0,0,maxW,maxH,&dc,0,0,bit.bmWidth,bit.bmHeight,SRCCOPY);

А>        CClipView::OnDraw(pDC);
А>    }
        
А>}

А>

А> ?


нет, к сожалению это суть дела не меняет..в принципе это даже убрать можно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.