问题是这样的,我在MFC对话框程序中,用AfxBeginThread开了一个画图线程,用来调用一个OpenGL画图窗口。
开启线程:AfxBeginThread((AFX_THREADPROC)OpenGLThread,this,0,0,0,0);//创建opengl线程
OpenGL画图程序:
void DisplayGLView()
{
//绘制接收到的数据
}
int OpenGLThread(LPVOID lpv)//线程run函数
{
while(1)
{
//接收数据程序
glutMainLoopEvent(); //进入glut循环
glutPostRedisplay();
}
}
用到glutMainLoopEvent()函数是因为需要循环接收数据,没接收一次数据就重新绘制一次图形,程序运行如下:
左边为OpenGL窗口,右边为对话框窗口。但是当我点击OpenGL窗口右上角的关闭按钮后整个程序就退出了,对话框窗口也关闭了,那怎么能只关闭OpenGL窗口,而对话框窗口还继续运行呢?