bool onMouseButtonDown(const EventArgs & e)
{
const MouseEventArgs & eMouse = static_cast<const MouseEventArgs &>(e);
// 取得控制項(視窗)在螢幕主視窗中的絕對像數位置
//Rect rectScreen = eMouse.window->getUnclippedPixelRect();
Rect rectScreen = eMouse.window->getPixelRect();
// 取得控制項相對於父視窗的相對位置
CEGUI::Size parentSize = eMouse.window->getParentPixelSize(); // 父視窗的像數大小
Vector2 pos = eMouse.window->getPosition().asAbsolute(parentSize); // 相對於父視窗的像數位置
Vector2 relPos = eMouse.window->getPosition().asRelative(parentSize); // 相對於父視窗的百分比位置
// 滑鼠事件參數中的位置資訊eMouse.position是主視窗螢幕的絕對位置
Point absMousePos = eMouse.position;
// 變化為相對於該控制項的相對位置
Point relMousePos;
relMousePos.d_x = absMousePos.d_x - rectScreen.d_left;
relMousePos.d_y = absMousePos.d_y - rectScreen.d_top;
ListboxItem* curPosItem = this->getItemAtPoint(relMousePos);
MessageBoxA(0, curPosItem->getText().c_str(), 0, 0);
return true;
}