按照资料上的内容写的,使用vc.net2003
结果得不到图形,好像在得到hDC,hWnd时有问题
在Cexample1View::OnDrawPoints()中hDC,hWnd的值不对
hDC 0x39011443 {unused=??? } unused CXX0030: 错误: 无法计算表达式的值 inthWnd 0x000b03c8 {unused=??? } unused CXX0030: 错误: 无法计算表达式的值 intint Cexample1View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO:  在此添加您专用的创建代码
PIXELFORMATDESCRIPTOR  pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER|PFD_SUPPOR         T_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,0,
};
CClientDC clientdc(this);
int pf=ChoosePixelFormat(clientdc.m_hDC,&pfd);
BOOL rt=SetPixelFormat(clientdc.m_hDC,pf,&pfd);
hglrc=wglCreateContext(clientdc.m_hDC);
return 0;
}void Cexample1View::OnDrawPoints()
{
// TODO: 在此添加命令处理程序代码
HWND hWnd=GetSafeHwnd();
HDC hDC=::GetDC(hWnd);
wglMakeCurrent(hDC,hglrc);
drawpoint();
wglMakeCurrent(NULL,NULL);
SwapBuffers(hDC);
}void Cexample1View::drawpoint(void)
{
myinit();
glPushMatrix();
glPointSize(20.0);
glBegin(GL_POINTS);
glColor3f(1.0,0.0,0.0);
glVertex3d(-0.7,-0.7,0.0);
glEnd();
glPopMatrix();
glFlush();
}