Original Post
what''s wrong in my code?
----------------------------------------------------------------
#include "stdafx.h"
#include "resource.h"
#include
#include
#include
void OpenGl(HWND hwnd,HDC *hdc,HGLRC *hrc);
void DrawGL(HDC dc,float x,float y);
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);
GLfloat y=0.0f;
GLfloat x=0.0f;
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wnd;
HDC dc;
HGLRC hgl;
wnd.cbClsExtra=0;
wnd.cbWndExtra=0;
wnd.hbrBackground=(HBRUSH)(COLOR_WINDOW+3);
wnd.hCursor=NULL;
wnd.hIcon=NULL;
wnd.hInstance=hInstance;
wnd.lpfnWndProc=WndProc;
wnd.lpszClassName="Window";
wnd.lpszMenuName=(char *)IDR_MENU1;
wnd.nostyle=CS_VREDRAW|CS_HREDRAW;
if(!RegisterClass(&wnd))return false;
hwnd=CreateWindow("Window","Window",WS_SYSMENU,100,100,400,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
OpenGl(hwnd,&dc,&hgl);
SetTimer(hwnd,1,1,NULL);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp)
{
switch(msg)
{
case WM_CLOSE:
PostQuitMessage(1);
break;
case WM_TIMER:
DrawGL(GetDC(hwnd),x,y);
break;
case WM_COMMAND:
switch(wp)
{
case ID_FILE_QUIT:
PostQuitMessage(1);
break;
}
break;
}
return DefWindowProc(hwnd,msg,wp,lp);
}
void OpenGl(HWND hwnd,HDC *hdc,HGLRC *hrc)
{
*hdc=GetDC(hwnd);
PIXELFORMATDESCRIPTOR pfd;
pfd.cColorBits=24;
pfd.cDepthBits=32;
pfd.dwFlags = PFD_DOUBLEBUFFER;
SetPixelFormat(*hdc,ChoosePixelFormat(*hdc,&pfd),&pfd);
*hrc=wglCreateContext(*hdc);
glShadeModel(GL_SMOOTH);
wglMakeCurrent(*hdc,*hrc);
}
void DrawGL(HDC dc,float x,float y)
{
glClear(GL_COLOR_BUFFER_BIT);
glViewport(-100,-100,GLsizei(400),GLsizei(400));
glBegin(GL_TRIANGLES);
glVertex3f(0.2f,0.0f,0.0f);
glVertex3f(0.0f,0.2f,0.0f);
glVertex3f(0.0f,0.0f,0.0f);
glEnd();
glTranslatef(0.4f,0.0f,0.0f);
glRotatef(10.0f,x,y,0.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.4f,0.0f,0.0f);
glVertex3f(0.0f,0.2f,0.0f);
glVertex3f(0.0f,0.0f,0.4f);
glEnd();
SwapBuffers(dc);
}
--------------------------------------