|
各位好,今天又遇到一个问题了。 ,本来就是为了防止窗口大小发生变化而写了一个相机事件回调函数,在相机回调函数里面如果窗口有发生变化就重新设置相机的视口和投影矩阵,但是现在有时候鼠标定位不准,有时候又是可以的。下面是相机回调函数:
-
- osgGA::EventQueue::Events& events = eventVistor->getEvents();
- for (osgGA::EventQueue::Events::const_iterator ite = events.begin(); ite != events.end(); ite++)
- {
- switch ((*ite)->getEventType())
- {
- case osgGA::GUIEventAdapter::RESIZE:
- {
- double ww,wh;
- ww=(*ite)->getWindowWidth();
- wh=(*ite)->getWindowHeight();
- if (0 == ww || 0 == wh)
- {
- return;
- }
- camera->setViewport(0, 0, ww, wh);
- unsigned int uw, uh;
- getScreenResolution(uw, uh);
- double pw, ph;
- pw = 100.0;
- ph = pw * ((double)uh / (double)uw);
- double radiow = uw / ww;
- double radioh = uh / wh;
- pw /= radiow;
- ph /= radioh;
- camera->setProjectionMatrixAsOrtho(0, pw, 0, ph, -1000, 1000);
- }
- break;
- }
复制代码
上面的100,是我一开始设置投影矩阵的宽度的。
在MFC和ActiveX下有时候鼠标是可以定位到按钮上,有时候又是不可以的,如下图:
本来单击上面的退出按钮应该关闭,但是现在没有定位准确,单击上面关闭按钮没有关闭,这到底是有什么问题呢。
是不是我写的相机回调有问题。??? |
|