#include "..\e2devent.h" #include "..\e2dmodule.h" e2d::MouseEvent::MouseEvent(UINT message, WPARAM w_param, LPARAM l_param) : message_(message) , w_param_(w_param) , l_param_(l_param) { } float e2d::MouseEvent::GetX() const { HDC hdc = ::GetDC(0); int dpi_x = ::GetDeviceCaps(hdc, LOGPIXELSX); return ((float)(short)LOWORD(l_param_)) * 96.f / dpi_x; } float e2d::MouseEvent::GetY() const { HDC hdc = ::GetDC(0); int dpi_y = ::GetDeviceCaps(hdc, LOGPIXELSY); return ((float)(short)HIWORD(l_param_)) * 96.f / dpi_y; } e2d::Point e2d::MouseEvent::GetPosition() const { HDC hdc = ::GetDC(0); int dpi_x = ::GetDeviceCaps(hdc, LOGPIXELSX); int dpi_y = ::GetDeviceCaps(hdc, LOGPIXELSY); return Point( ((float)(short)LOWORD(l_param_)) * 96.f / dpi_x, ((float)(short)HIWORD(l_param_)) * 96.f / dpi_y ); } bool e2d::MouseEvent::IsShiftDown() const { return GET_KEYSTATE_WPARAM(w_param_) == MK_SHIFT; } bool e2d::MouseEvent::IsCtrlDown() const { return GET_KEYSTATE_WPARAM(w_param_) == MK_CONTROL; } float e2d::MouseEvent::GetWheelDelta() const { return static_cast(GET_WHEEL_DELTA_WPARAM(w_param_)); } bool e2d::MouseEvent::IsLButtonDown() const { return GET_KEYSTATE_WPARAM(w_param_) == MK_LBUTTON; } bool e2d::MouseEvent::IsRButtonDown() const { return GET_KEYSTATE_WPARAM(w_param_) == MK_RBUTTON; } bool e2d::MouseEvent::IsMButtonDown() const { return GET_KEYSTATE_WPARAM(w_param_) == MK_MBUTTON; } e2d::MouseEvent::Type e2d::MouseEvent::GetType() const { return Type(message_); }