| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 279 人关注过本帖
标题:[求助]OpenGL与windows结合问题!(窗口)
收藏  订阅  推荐  打印 
ldcsoftware
Rank: 2
等级:注册会员
帖子:39
积分:514
注册:2007-8-6
[求助]OpenGL与windows结合问题!(窗口)

#include <windows.h>
#include <stdio.h>
#include <gl/glut.h>

LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
//BOOL CreateWindow(int width,int height);

HINSTANCE hInstance;

void init(void)
{
glClearColor(0.0f,0.0f,0.0f,0.0f);
glShadeModel(GL_FLAT);
}

void display(void)
{
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

glColor3f(1.0f,1.0f,1.0f);
glPushMatrix();
glutSolidSphere(1.0f,40,16);
glPopMatrix();
}

void reshape(int w,int h)
{
glViewport(0.0f,0.0f,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0f,(GLsizei)w / (GLsizei)h,1.0f,20.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

BOOL CreateWindowGL(int width,int height)
{
// hInstance = GetModuleHandle(NULL);
hInstance = GetModuleHandle(NULL);
int right,bottom;
right = width;
bottom = height;
HWND hwnd;
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hCursor = LoadCursor(NULL,IDC_CROSS);
wc.hIcon = LoadIcon(NULL,IDI_WINLOGO);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = "lidecheng";
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;

if(!RegisterClass(&wc))
{
MessageBox(NULL,"调试","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}

hwnd = CreateWindow("lidecheng","wocaonima",WS_OVERLAPPEDWINDOW,100,100,right,bottom,NULL,NULL,hInstance,NULL);
if(!hwnd)
{
return FALSE;
}

ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
reshape(bottom,width);

return TRUE;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{

MSG nMsg;
BOOL done = FALSE;

if(!CreateWindowGL(500,500))
{
return 0;
}

while(!done)
{
if(PeekMessage(&nMsg,NULL,0,0,PM_REMOVE))
{
if(nMsg.message = WM_QUIT)
{
done = TRUE;

}
else
{
TranslateMessage(&nMsg);
DispatchMessage(&nMsg);
}
}
else
{
display();
}
}

return (nMsg.wParam);
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CLOSE:
PostQuitMessage(0);
return 0;
/* case 'WM_KEYDOWN':
return 0;
case 'WM_KEYUP':
return 0;
case 'SIZE':
LOWORD(lParam),HIWORD(lParam);
LOWORD(lParam),HIWORD(lParam);
return 0;*/
default :
return 0;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

为什么我显示不出来窗口,并且和这个物体!
请哥哥姐姐帮帮我解决这个问题下下!
thank you !


搜索更多相关主题的帖子: windows  OpenGL  窗口  结合  
2007-11-20 11:54
Whnight
Rank: 2
等级:注册会员
帖子:120
积分:1354
注册:2007-9-14

你有新建工程吗?
2007-11-20 12:00
ldcsoftware
Rank: 2
等级:注册会员
帖子:39
积分:514
注册:2007-8-6
回复:(Whnight)你有新建工程吗?

我有啊 就是在写windows那里面写的啊

2007-11-20 17:53
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.064822 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved