Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > OpenGL & MFC


Автор: MaxB 6.12.2004, 16:54
Есть класс вида CZoomView наследованный от CScrollView.
он нормально потдержует масштабирование и скролинг.
вот так подготавливется контекст устройства:
Код


void QZoomView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
if (!pDC->IsPrinting())
{
 ASSERT(m_Zoom > 0.0f);
 int denom(1000);
 int num;
 num=(m_Zoom * denom);
 if (pDC->GetMapMode() == MM_TEXT)
 {
                 pDC->SetMapMode(MM_ANISOTROPIC);
  CSize sz;
  sz=pDC->ScaleWindowExt(denom, 1, denom, 1);    
  num =num*denom;
 }
 else
 {
  pDC->SetMapMode(MM_ANISOTROPIC);
 }
 CSize sz;
                 sz=pDC->ScaleViewportExt(num, denom, num, denom);
   

 CRect rect;
 GetClientRect(&rect);

 CPoint pntVO = -GetDeviceScrollPosition();
 
 
 if (m_totalDev.cx < rect.Width())
  pntVO.x = (rect.Width() - m_totalDev.cx) / 2;
 if (m_totalDev.cy < rect.Height())
  pntVO.y = (rect.Height() - m_totalDev.cy) / 2;
 pDC->SetViewportOrg(pntVO);
 CPoint ptOrg;
 ptOrg.x=m_totalLog.cx/2;
 ptOrg.y=m_totalLog.cy/2;
 pDC->OffsetWindowOrg(-ptOrg.x,-ptOrg.y);
 


 
}
 
CView::OnPrepareDC(pDC, pInfo);
}

Хачу вывод графики периписать на OpenGl.
Как, так же преоброзовать логическую систему координат в OpenGL?


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