glutMainLoop()函数会创建一个新窗口,我称之为“渲染窗口”;直到渲染结束,该函数才会返回。怎样能在调用函数的同时马上获取句柄?不要多线程。我现在是在渲染函数中获取“当前窗口”的句柄,但总觉得这样还是慢一步,而且这样是不是会重复获取,浪费资源?HWND变量做成静态怎样?
你的理解稍微有点错误,其实渲染窗口是在glutCreateWindow之后立刻就创建了,我一直都是在这个接口之后用windows API: GetActiveWindow就可以获取窗口句柄了,你试试。没有必要在渲染函数内每次都获取。 追问 我在GetActiveWindow后面设了一个断点,到这个断点时还没有看到openGL的渲染窗口,只有原来的命令行窗口。是不是这时openGL渲染窗口已经创建了,但是还不可见,只有在渲染一次后才能见到? 追答 对,窗口对象已经产生,可能是还没有showwindow出来所以看不到,但句柄是可以获取到的。