CEGUI里面响应鼠标单击事件失败,该如何解决

CEGUI里面响应鼠标单击事件失败
是基于GLUT和CEGUI做的,已经在GLUT环境里面添加:
glutMouseFunc(processMouse);
glutPassiveMotionFunc(processMoveMouse);
对应的代码:
C/C++ code
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);
}


现在也能看到鼠标在界面里面移动了.
并且绑定了事件:

C/C++ code
    CEGUI::PushButton* 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::DoSomething,this));


对应的事件:
C/C++ code
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;

}


但是当把鼠标单击那个按钮的时候 却没有任何反应?这是何解...

------解决方案--------------------
把 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->setArea()试试~~· 或者把pushButton换成Button试试~~