VC 写的控制台程序 使用OpenGL 输出所画的图像 ,问题是 图形正确输出后

来源:百度知道 编辑:UC知道 时间:2024/08/22 15:52:52
VC 写的控制台程序 使用OpenGL 输出所画的图像 ,问题是 图形正确输出后,为什么用鼠标点击下桌面任何位置,图像就显示不了了,呈现白屏

请问 如何解决? 使得图像输出后 ,用鼠标运行其他程序后,图像仍然可以正确的显示
程序代码 ,其实就是画一个很简单图形,但是用鼠标点击桌面时 ,所画的图形就不能显示了

void main(void)
{

auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,500,500);
auxInitWindow(L"simple");

glClear(GL_COLOR_BUFFER_BIT);

glTranslatef(0,0,0.0);
glColor3f(1.0,1.0,1.0);

glBegin(GL_POLYGON);
glVertex3f(0,0,0);
glVertex3f(0,1,0);
glVertex3f(1,1,0);
glVertex3f(1,0,0);
glEnd();
glFlush();

}

下面是我用glut.h中的函数写的一个显示正方体的函数,不需要在“工程”“设置”“链接”中添加OpenGL32.lib等静态文件。
#include<GL/glut.h>
void display()//display函数

这个确实不好说,应该把程序贴出来看了才知道的!

OnPaint()

这个不好说啊。

我批评一下:我说,你写的根本就不是OpenGL程序,glBegin(GL_POLYGON);
glVertex3f(0,0,0);
glVertex3f(0,1,0);
glVertex3f(1,1,0);
glVertex3f(1,0,0);
glEnd();
这些应该是放在display()函数中的,

不好意思我没有帮你改你的程序,因为我很多时间没有用aux的函数,现在用glut.h中的函数,如果你实在是向改自己的函数,给你提供方法:把glBegin(GL_POLYGON);
glVertex3f(0,0,0);
glVertex3f(0,1,0);
glVertex3f(1,1,0);
glVertex3f(1,0,0);
glEnd(); 放在一个display函数中,然后调用显示回调函数进行显示。

下面是我用glut.h中的函数写的一个显示正方体的函数,不需要在“工程”“设置”“链接”中添加OpenGL32.lib等静态文件。
#include<GL/glut.h>
void display()//display函数
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0);
glutSolidCube(3.0);
glutWireCube(1.0);
glutSwapBuffer