|
是基于GLUT和CEGUI做的,已经在GLUT环境里面添加:
glutMouseFunc(processMouse);
glutPassiveMotionFunc(processMoveMouse);
对应的代码:
void processMouse(int button, int state, int x, int y)
{
if (state == GLUT_DOWN)
{
if (button == GLUT_LEFT_BUTTON)
{
cegui.pSys->injectMouseButtonDown(LeftButton);
}
else if (button == GLUT_MIDDLE_BUTTON)
{
cegui.pSys->injectMouseButtonDown(RightButton);
}
else
{
}
}
}
void processMoveMouse(int x, int y)
{
cegui.pSys->injectMousePosition(x, y);
}
现在也能看到鼠标在界面里面移动了.
并且绑定了事件:
CEGUI: ushButton* quitButton = (CEGUI::PushButton*)CEGUI::WindowManager::getSingleton().createWindow
("TaharezLook/Button", (CEGUI::utf8*)"Quit");
root->addChildWindow(quitButton);
quitButton->setPosition(CEGUI::UVector2(cegui_reldim(0.35f), cegui_reldim( 0.45f)) );
quitButton->setSize(CEGUI::UVector2(cegui_reldim(0.35f), cegui_reldim( 0.1f)) );
quitButton->setText("Quit");
//绑定事件
CEGUI::WindowManager::getSingleton().getWindow("Quit")->subscribeEvent(
CEGUI::PushButton::EventClicked,CEGUI::Event::Subscriber(&GUI: oSomething,this));
对应的事件:
bool GUI::DoSomething(const CEGUI::EventArgs& args)
{
MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
return true;
}
但是当把鼠标单击那个按钮的时候 却没有任何反应?这是何解... |
|