|
|
各位大侠多多帮忙
1) 怎么处理程序退出,其实是两个问题.
一个是按窗口的关闭按钮以后,glutMainLoop不返回,我想释放资源,保存数据,怎么处理的?看网上说可以改glutMainLoop的代码,我不想这么干.我写了这么一段代码
- class AppGuard
- {
- public:
- ~AppGuard()
- {
- OnAppExit();
- }
- void OnAppExit(void)
- {
- //清理代码
- }
- };
- AppGuard gGuard;
复制代码
试了一下,OnAppExit能被执行,但觉得有些别扭,不知道在全局对象的析构函数里执行清理工作保不保险。一般的做法是什么?
再一个是怎么在代码里退出程序,也就是说不按关闭按钮。
glutDestroyWindow只把窗口关了,程序没退出
PostQuitMessage(0);倒是可以,不过也许就要来个#ifdef _WIN32
再就是exit(0);不但又有了上面那个问题,而且还跳过了glut本身的关闭过程
2)怎么接收Esc,Ctrl,Alt,Shift这几个按键?我试了下glutKeyboardFunc和glutSpecialFunc,都不管这几个键,我本来想按Esc退出的,现在暂时用F12呢.
第一天学glut,遇到这个两个问题,大家帮帮忙,谢了. |
|