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


Автор: umnick 5.3.2009, 20:31
Загружаю CBitmap в CDC. Как при этом рисунок из CBitmap подогнать под размеры клиентской области?

Автор: Andrey44 6.3.2009, 08:04
Код

BOOL StretchBlt(
  HDC hdcDest,      // handle to destination DC
  int nXOriginDest, // x-coord of destination upper-left corner
  int nYOriginDest, // y-coord of destination upper-left corner
  int nWidthDest,   // width of destination rectangle
  int nHeightDest,  // height of destination rectangle
  HDC hdcSrc,       // handle to source DC
  int nXOriginSrc,  // x-coord of source upper-left corner
  int nYOriginSrc,  // y-coord of source upper-left corner
  int nWidthSrc,    // width of source rectangle
  int nHeightSrc,   // height of source rectangle
  DWORD dwRop       // raster operation code
);


Автор: umnick 6.3.2009, 09:54
И какие переменые в этой структуре отвечают за изменение размера мапы?

Автор: Andrey44 6.3.2009, 10:51
umnick,  smile супер вопрос!!!
Только это не структура, а функция для рисования. И все параметры описаны.
Да-а-а, смотрю в книгу - вижу фигу!!!

Автор: umnick 6.3.2009, 16:42
Проблему решил. Кому интересно смотрите:
Код

void CRaiwayView::OnDraw(CDC* pDC)
{
    CRaiwayDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    CRect rect;

    GetWindowRect(rect);

    CDC dcTemp;
    CBitmap *cb=CBitmap::FromHandle(startBitmap);
    
    BITMAP bmpInfo;
    cb->GetBitmap(&bmpInfo);

    dcTemp.CreateCompatibleDC(pDC); 
    dcTemp.SelectObject(*cb); 
    
    pDC->StretchBlt(0,0,rect.Size().cx,rect.Size().cy,&dcTemp,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);
}



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