131 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			131 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
|  | #include "..\easy2d.h"
 | |||
|  | #include "..\EasyX\easyx.h"
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | static MouseMsg s_mouseMsg = MouseMsg(); | |||
|  | 
 | |||
|  | // <20><> EasyX <20><> MOUSEMSG ת<><D7AA>Ϊ MouseMsg
 | |||
|  | static void ConvertMsg(MOUSEMSG msg); | |||
|  | 
 | |||
|  | void easy2d::MouseMsg::__exec() | |||
|  | { | |||
|  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | 	while (MouseHit()) | |||
|  | 	{ | |||
|  | 		// ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | 		ConvertMsg(GetMouseMsg()); | |||
|  | 		// ִ<>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 		Application::get()->getCurrentScene()->_exec(); | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | MouseMsg MouseMsg::getMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg;	// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getLButtonDown() | |||
|  | { | |||
|  | 	return s_mouseMsg.mkLButton; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getRButtonDown() | |||
|  | { | |||
|  | 	return s_mouseMsg.mkRButton; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getMButtonDown() | |||
|  | { | |||
|  | 	return s_mouseMsg.mkMButton; | |||
|  | } | |||
|  | 
 | |||
|  | int MouseMsg::getMouseX() | |||
|  | { | |||
|  | 	return s_mouseMsg.x; | |||
|  | } | |||
|  | 
 | |||
|  | int MouseMsg::getMouseY() | |||
|  | { | |||
|  | 	return s_mouseMsg.y; | |||
|  | } | |||
|  | 
 | |||
|  | int MouseMsg::getMouseWheel() | |||
|  | { | |||
|  | 	return s_mouseMsg.wheel; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getMouseMovedMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_MOUSEMOVE; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getLButtonDBClickedMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_LBUTTONDBLCLK; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getLButtonDownMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_LBUTTONDOWN; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getLButtonUpMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_LBUTTONUP; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getRButtonDBClicked() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_RBUTTONDBLCLK; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getRButtonDownMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_RBUTTONDOWN; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getRButtonUpMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_LBUTTONUP; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getMButtonDBClicked() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_MBUTTONDBLCLK; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getMButtonDownMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_MBUTTONDOWN; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getMButtonUpMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_MBUTTONUP; | |||
|  | } | |||
|  | 
 | |||
|  | bool MouseMsg::getWheelMsg() | |||
|  | { | |||
|  | 	return s_mouseMsg.uMsg == WM_MOUSEWHEEL; | |||
|  | } | |||
|  | 
 | |||
|  | void MouseMsg::resetMouseMsg() | |||
|  | { | |||
|  | 	s_mouseMsg.uMsg = 0; | |||
|  | } | |||
|  | 
 | |||
|  | void ConvertMsg(MOUSEMSG msg) | |||
|  | { | |||
|  | 	// <20><> MOUSEMSG ת<><D7AA>Ϊ MouseMsg
 | |||
|  | 	/// <20><>Ȼ MOUSEMSG <20><> MouseMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
 | |||
|  | 	/// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʵ<EFBFBD><CAB5> Easy2D <20><> EasyX <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8>룬<EFBFBD><EBA3AC><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> MouseMsg
 | |||
|  | 	/// <20><><EFBFBD><EFBFBD> Msg <20><><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB> WinAPIʵ<49>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EasyX <20>ĺ<EFBFBD><C4BA><EFBFBD>
 | |||
|  | 	s_mouseMsg.uMsg = msg.uMsg; | |||
|  | 	s_mouseMsg.mkLButton = msg.mkLButton; | |||
|  | 	s_mouseMsg.mkMButton = msg.mkMButton; | |||
|  | 	s_mouseMsg.mkRButton = msg.mkRButton; | |||
|  | 	s_mouseMsg.wheel = msg.wheel; | |||
|  | 	s_mouseMsg.x = msg.x; | |||
|  | 	s_mouseMsg.y = msg.y; | |||
|  | } |