Home > Software engineering >  Why do I draw OpenGL images show not to come out, under the MFC urgent???????
Why do I draw OpenGL images show not to come out, under the MFC urgent???????

Time:10-06


COpenglstep1View: : COpenglstep1View ()
{
//TODO: add construction code here
This - & gt; M_GLPixelIndex=0;
This - & gt; M_hGLContext=NULL;
}

COpenglstep1View: : ~ COpenglstep1View ()
{
}

BOOL COpenglstep1View: : PreCreateWindow (CREATESTRUCT& Cs)
{
//TODO: Modify the Window class or styles here by modifying the
//the CREATESTRUCT cs
Cs. Style |=(WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
Return the CView: : PreCreateWindow (cs);
//return the CView: : PreCreateWindow (cs);
}

/////////////////////////////////////////////////////////////////////////////
//COpenglstep1View drawing

Void COpenglstep1View: : ontouch * pDC (CDC)
{
COpenglstep1Doc * pDoc=GetDocument ();
ASSERT_VALID (pDoc);
//TODO: add the draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
//COpenglstep1View printing

BOOL COpenglstep1View: : OnPreparePrinting (CPrintInfo * pInfo)
{
//the default preparation
Return DoPreparePrinting (pInfo);
}

Void COpenglstep1View: : OnBeginPrinting (CDC, pDC */* */pInfo CPrintInfo */* */)
{
//TODO: add extra initialization before printing
}

Void COpenglstep1View: : OnEndPrinting (CDC, pDC */* */pInfo CPrintInfo */* */)
{
//TODO: add the cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
//COpenglstep1View diagnostics

# ifdef _DEBUG
Void COpenglstep1View: : AssertValid (const)
{
The CView: : AssertValid ();
}

Void COpenglstep1View: : Dump (CDumpContext& Dc) const
{
The CView: : Dump (dc);
}

COpenglstep1Doc * COpenglstep1View: : GetDocument ()//non - the debug version is the inline
{
ASSERT (m_pDocument - & gt; IsKindOf (RUNTIME_CLASS (COpenglstep1Doc)));
Return (COpenglstep1Doc *) m_pDocument;
}
# endif//_DEBUG

/////////////////////////////////////////////////////////////////////////////
//COpenglstep1View message handlers

BOOL COpenglstep1View: : Create (LPCTSTR lpszClassName, LPCTSTR lpszWindowName, dwords dwStyle, const RECT& The rect, CWnd * pParentWnd, UINT nID, CCreateContext * pContext)
{
//TODO: Add your specialized code here and/or call the base class

Return the CWnd: : Create (lpszClassName lpszWindowName, dwStyle, the rect, pParentWnd, nID, pContext);
}

BOOL COpenglstep1View: : SetWindowPixelFormat (HDC HDC)
{
PIXELFORMATDESCRIPTOR pixelDesc=
{
Sizeof (PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER | PFD_SUPPORT_GDI,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
32,
0,
0,
PFD_MAIN_PLANE,
0,
0 0,
};
This - & gt; M_GLPixelIndex=ChoosePixelFormat (hDC, & amp; PixelDesc);
If (this - & gt; M_GLPixelIndex==0)
{
This - & gt; M_GLPixelIndex=1;
If (DescribePixelFormat (hDC, this - & gt; M_GLPixelIndex, sizeof (PIXELFORMATDESCRIPTOR), & amp; PixelDesc)==0)
{
return FALSE;
}
}

If (SetPixelFormat (hDC, this - & gt; M_GLPixelIndex, & amp; PixelDesc)==FALSE)
{
return FALSE;
}
return TRUE;
}

Int COpenglstep1View: : OnCreate (LPCREATESTRUCT LPCREATESTRUCT)
{
If (the CView: : OnCreate (lpCreateStruct)==1)
return -1;

//TODO: Add your specialized creation code here
HWND HWND=this - & gt; GetSafeHwnd ();
HDC HDC=: : GetDC (hWnd);
If (this - & gt; SetWindowPixelFormat (hDC)==FALSE)
{
return 0;
}
If (this - & gt; CreateViewGLContext (hDC)==FALSE)
{
return 0;
}
return 0;
}

BOOL COpenglstep1View: : CreateViewGLContext (HDC HDC)
{
This - & gt; M_hGLContext=wglCreateContext (hDC);
If (this - & gt; M_hGLContext==NULL)
{//create failure
return FALSE;
}

If (wglMakeCurrent (hDC, this - & gt; M_hGLContext)==FALSE)
{//selected as the RC failure
return FALSE;
}

return TRUE;

}

Void COpenglstep1View... OnDestroy ()
{
The CView... OnDestroy ();

//TODO: Add your message handler code here
If (wglGetCurrentContext ()!=NULL)
{
WglMakeCurrent (NULL, NULL);
}
If (this - & gt; M_hGLContext!=NULL)
{
WglDeleteContext (this - & gt; M_hGLContext);
This - & gt; M_hGLContext=NULL;
}
}

Void COpenglstep1View: : OnSize (UINT nType, cx, int int cy)
{
The CView: : OnSize (cx, nType, cy);

//TODO: Add your message handler code here
GLsizei width, height;
GLdouble aspect;
Width=cx.
Height=cy;
If (cy==0)
{
The aspect=(GLdouble) width;
}
The else
{
The aspect=(GLdouble) width/height (GLdouble);
}
GlViewport (0, 0, width, height);
GlMatrixMode (GL_PROJECTION);
GlLoadIdentity ();
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related