|
我用的是MFC应用程序,然后在程序中创建一个ImageControl,现在希望鼠标移动到这个ImageControl上时,改变它的图片,使用setEventCallback(),但是当鼠标移动上去时,没有反应。
osg::Image* t_image = osgDB::readImageFile("..\\Data\\img1.png");
ImageControl* imageCon = new ImageControl( t_image );
imageCon->setVertAlign( Control::ALIGN_CENTER );
imageCon->setEventCallback( new MyEventHandler() ); //设置事件回调
gButton->setControl(0, 0, imageCon); //将ImageCon放入gButton(是一个Grid)
//回调事件处理
bool MyEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& /*aa*/, osg::Object* object, osg::NodeVisitor* /*nv*/)
{
if (ea.getHandled()) return false;
osgGA::GUIEventAdapter::EventType a = ea.getEventType(); //frame可以获取
switch(ea.getEventType())
{
case(osgGA::GUIEventAdapter::MOVE): //得不到MOVE,换成PUSH等也不行
{
//do something...
return false;
break;
}
default:
break;
}
return false;
}
是不是还有哪里没有设置?或者这种写法错误?
|
|