添加按键消息监听
This commit is contained in:
parent
fe192ad78d
commit
27e9825216
|
|
@ -15,7 +15,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||||
node->setSize(30, 180);
|
node->setSize(30, 180);
|
||||||
scene->add(node);
|
scene->add(node);
|
||||||
|
|
||||||
auto mouselistener = new EMouseListener(L"listener", [=] {
|
/*auto listener = new EMouseListener([=] {
|
||||||
if (!EMouseMsg::isLButtonDown())
|
if (!EMouseMsg::isLButtonDown())
|
||||||
{
|
{
|
||||||
if (EMouseMsg::getMsg() == EMouseMsg::MOVE)
|
if (EMouseMsg::getMsg() == EMouseMsg::MOVE)
|
||||||
|
|
@ -23,9 +23,23 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||||
node->setPos(EMouseMsg::getPos());
|
node->setPos(EMouseMsg::getPos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});*/
|
||||||
|
|
||||||
|
auto listener = new EKeyPressListener([=] {
|
||||||
|
if (EKeyMsg::isCapitalLockOn())
|
||||||
|
{
|
||||||
|
if (EKeyMsg::getVal() == EKeyMsg::KEY::LEFT)
|
||||||
|
{
|
||||||
|
node->move(-3, 0);
|
||||||
|
}
|
||||||
|
if (EKeyMsg::getVal() == EKeyMsg::KEY::RIGHT)
|
||||||
|
{
|
||||||
|
node->move(3, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
EMsgManager::addListener(mouselistener);
|
EMsgManager::addListener(listener);
|
||||||
|
|
||||||
app.enterScene(scene);
|
app.enterScene(scene);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include "..\ebase.h"
|
#include "..\ebase.h"
|
||||||
#include "..\Win\winbase.h"
|
#include "..\Win\winbase.h"
|
||||||
|
#include "..\emsg.h"
|
||||||
#include "..\etools.h"
|
#include "..\etools.h"
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
@ -456,8 +457,7 @@ void e2d::EApp::_enterNextScene()
|
||||||
{
|
{
|
||||||
// 返回上一场景时,恢复场景上的定时器
|
// 返回上一场景时,恢复场景上的定时器
|
||||||
//Timer::notifyAllSceneTimers(m_pCurrentScene);
|
//Timer::notifyAllSceneTimers(m_pCurrentScene);
|
||||||
//MouseMsg::notifyAllSceneListeners(m_pCurrentScene);
|
EMsgManager::notifyAllListenersOnScene(m_pCurrentScene);
|
||||||
//KeyMsg::notifyAllSceneListeners(m_pCurrentScene);
|
|
||||||
//ActionManager::notifyAllSceneActions(m_pCurrentScene);
|
//ActionManager::notifyAllSceneActions(m_pCurrentScene);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -195,13 +195,14 @@
|
||||||
<ClCompile Include="Base\EApp.cpp" />
|
<ClCompile Include="Base\EApp.cpp" />
|
||||||
<ClCompile Include="Base\EObject.cpp" />
|
<ClCompile Include="Base\EObject.cpp" />
|
||||||
<ClCompile Include="Base\EScene.cpp" />
|
<ClCompile Include="Base\EScene.cpp" />
|
||||||
|
<ClCompile Include="Msg\EMsgManager.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EKeyListener.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EKeyPressListener.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EListener.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EMouseClickListener.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EMouseDraggedListener.cpp" />
|
||||||
|
<ClCompile Include="Msg\Listener\EMouseListener.cpp" />
|
||||||
<ClCompile Include="Node\ENode.cpp" />
|
<ClCompile Include="Node\ENode.cpp" />
|
||||||
<ClCompile Include="Tool\EKeyListener.cpp" />
|
|
||||||
<ClCompile Include="Tool\EListener.cpp" />
|
|
||||||
<ClCompile Include="Tool\EMouseClickListener.cpp" />
|
|
||||||
<ClCompile Include="Tool\EMouseDraggedListener.cpp" />
|
|
||||||
<ClCompile Include="Tool\EMouseListener.cpp" />
|
|
||||||
<ClCompile Include="Tool\EMsgManager.cpp" />
|
|
||||||
<ClCompile Include="Tool\EObjectManager.cpp" />
|
<ClCompile Include="Tool\EObjectManager.cpp" />
|
||||||
<ClCompile Include="Win\winbase.cpp" />
|
<ClCompile Include="Win\winbase.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -210,6 +211,7 @@
|
||||||
<ClInclude Include="ebase.h" />
|
<ClInclude Include="ebase.h" />
|
||||||
<ClInclude Include="ecommon.h" />
|
<ClInclude Include="ecommon.h" />
|
||||||
<ClInclude Include="emacros.h" />
|
<ClInclude Include="emacros.h" />
|
||||||
|
<ClInclude Include="emsg.h" />
|
||||||
<ClInclude Include="enodes.h" />
|
<ClInclude Include="enodes.h" />
|
||||||
<ClInclude Include="etools.h" />
|
<ClInclude Include="etools.h" />
|
||||||
<ClInclude Include="Win\winbase.h" />
|
<ClInclude Include="Win\winbase.h" />
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,11 @@
|
||||||
<Filter Include="Base">
|
<Filter Include="Base">
|
||||||
<UniqueIdentifier>{261633d3-3814-40c7-bd6d-201ede6c6ade}</UniqueIdentifier>
|
<UniqueIdentifier>{261633d3-3814-40c7-bd6d-201ede6c6ade}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Tool\Listener">
|
<Filter Include="Msg">
|
||||||
<UniqueIdentifier>{bdc55351-669e-4ee5-ba0b-ee0e4b628fea}</UniqueIdentifier>
|
<UniqueIdentifier>{cc102a62-b34d-493c-be3c-f3e5dfbe4cf4}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Msg\Listener">
|
||||||
|
<UniqueIdentifier>{b9bb1728-5106-4574-998e-8564b49cb4a1}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
@ -36,23 +39,26 @@
|
||||||
<ClCompile Include="Base\EScene.cpp">
|
<ClCompile Include="Base\EScene.cpp">
|
||||||
<Filter>Base</Filter>
|
<Filter>Base</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EMsgManager.cpp">
|
<ClCompile Include="Msg\EMsgManager.cpp">
|
||||||
<Filter>Tool</Filter>
|
<Filter>Msg</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EMouseListener.cpp">
|
<ClCompile Include="Msg\Listener\EKeyListener.cpp">
|
||||||
<Filter>Tool\Listener</Filter>
|
<Filter>Msg\Listener</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EListener.cpp">
|
<ClCompile Include="Msg\Listener\EListener.cpp">
|
||||||
<Filter>Tool\Listener</Filter>
|
<Filter>Msg\Listener</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EKeyListener.cpp">
|
<ClCompile Include="Msg\Listener\EMouseClickListener.cpp">
|
||||||
<Filter>Tool\Listener</Filter>
|
<Filter>Msg\Listener</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EMouseClickListener.cpp">
|
<ClCompile Include="Msg\Listener\EMouseDraggedListener.cpp">
|
||||||
<Filter>Tool\Listener</Filter>
|
<Filter>Msg\Listener</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Tool\EMouseDraggedListener.cpp">
|
<ClCompile Include="Msg\Listener\EMouseListener.cpp">
|
||||||
<Filter>Tool\Listener</Filter>
|
<Filter>Msg\Listener</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Msg\Listener\EKeyPressListener.cpp">
|
||||||
|
<Filter>Msg\Listener</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
@ -65,5 +71,6 @@
|
||||||
<ClInclude Include="ecommon.h" />
|
<ClInclude Include="ecommon.h" />
|
||||||
<ClInclude Include="ebase.h" />
|
<ClInclude Include="ebase.h" />
|
||||||
<ClInclude Include="easy2d.h" />
|
<ClInclude Include="easy2d.h" />
|
||||||
|
<ClInclude Include="emsg.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "..\etools.h"
|
#include "..\..\emsg.h"
|
||||||
|
|
||||||
e2d::EKeyListener::EKeyListener()
|
e2d::EKeyListener::EKeyListener()
|
||||||
: EListener()
|
: EListener()
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "..\etools.h"
|
#include "..\..\emsg.h"
|
||||||
|
|
||||||
e2d::EListener::EListener()
|
e2d::EListener::EListener()
|
||||||
: m_bRunning(false)
|
: m_bRunning(false)
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
#include "..\..\emsg.h"
|
||||||
|
|
||||||
|
e2d::EMouseClickListener::EMouseClickListener()
|
||||||
|
: EMouseListener()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EMouseClickListener::EMouseClickListener(EString name)
|
||||||
|
: EMouseListener(name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EMouseClickListener::EMouseClickListener(const MOUSE_CLICK_LISTENER_CALLBACK & callback)
|
||||||
|
: EMouseListener()
|
||||||
|
, m_callback(callback)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EMouseClickListener::EMouseClickListener(EString name, const MOUSE_CLICK_LISTENER_CALLBACK & callback)
|
||||||
|
: EMouseListener(name)
|
||||||
|
, m_callback(callback)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EMouseClickListener::runCallback()
|
||||||
|
{
|
||||||
|
if (EMouseMsg::getMsg() == EMouseMsg::MOUSE_MSG::LBUTTON_DOWN ||
|
||||||
|
EMouseMsg::getMsg() == EMouseMsg::MOUSE_MSG::LBUTTON_DBLCLK)
|
||||||
|
{
|
||||||
|
m_callback(EMouseMsg::getPos());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EMouseClickListener::setCallback(const MOUSE_CLICK_LISTENER_CALLBACK & callback)
|
||||||
|
{
|
||||||
|
m_callback = callback;
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "..\etools.h"
|
#include "..\..\emsg.h"
|
||||||
|
|
||||||
e2d::EMouseDraggedListener::EMouseDraggedListener()
|
e2d::EMouseDraggedListener::EMouseDraggedListener()
|
||||||
: EMouseListener()
|
: EMouseListener()
|
||||||
|
|
@ -12,20 +12,27 @@ e2d::EMouseDraggedListener::EMouseDraggedListener(EString name)
|
||||||
|
|
||||||
e2d::EMouseDraggedListener::EMouseDraggedListener(const MOUSE_DRAG_LISTENER_CALLBACK & callback)
|
e2d::EMouseDraggedListener::EMouseDraggedListener(const MOUSE_DRAG_LISTENER_CALLBACK & callback)
|
||||||
: EMouseListener()
|
: EMouseListener()
|
||||||
|
, m_callback(callback)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::EMouseDraggedListener::EMouseDraggedListener(EString name, const MOUSE_DRAG_LISTENER_CALLBACK & callback)
|
e2d::EMouseDraggedListener::EMouseDraggedListener(EString name, const MOUSE_DRAG_LISTENER_CALLBACK & callback)
|
||||||
: EMouseListener(name)
|
: EMouseListener(name)
|
||||||
|
, m_callback(callback)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EMouseDraggedListener::runCallback()
|
void e2d::EMouseDraggedListener::runCallback()
|
||||||
{
|
{
|
||||||
if (EMouseMsg::getMsg() == EMouseMsg::LBUTTON_DOWN ||
|
if (EMouseMsg::getMsg() == EMouseMsg::MOUSE_MSG::LBUTTON_DOWN ||
|
||||||
EMouseMsg::getMsg() == EMouseMsg::LBUTTON_DBLCLK)
|
EMouseMsg::getMsg() == EMouseMsg::MOUSE_MSG::LBUTTON_DBLCLK)
|
||||||
{
|
{
|
||||||
EMouseListener::runCallback();
|
m_Begin = EMouseMsg::getPos();
|
||||||
|
}
|
||||||
|
else if (EMouseMsg::getMsg() == EMouseMsg::MOUSE_MSG::LBUTTON_UP)
|
||||||
|
{
|
||||||
|
m_End = EMouseMsg::getPos();
|
||||||
|
m_callback(m_Begin, m_End);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "..\etools.h"
|
#include "..\..\emsg.h"
|
||||||
|
|
||||||
e2d::EMouseListener::EMouseListener()
|
e2d::EMouseListener::EMouseListener()
|
||||||
: EListener()
|
: EListener()
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
#include "..\etools.h"
|
|
||||||
|
|
||||||
e2d::EMouseClickListener::EMouseClickListener()
|
|
||||||
: EMouseListener()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EMouseClickListener::EMouseClickListener(EString name)
|
|
||||||
: EMouseListener(name)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EMouseClickListener::EMouseClickListener(const MOUSE_LISTENER_CALLBACK & callback)
|
|
||||||
: EMouseListener(callback)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EMouseClickListener::EMouseClickListener(EString name, const MOUSE_LISTENER_CALLBACK & callback)
|
|
||||||
: EMouseListener(name, callback)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::EMouseClickListener::runCallback()
|
|
||||||
{
|
|
||||||
if (EMouseMsg::getMsg() == EMouseMsg::LBUTTON_DOWN ||
|
|
||||||
EMouseMsg::getMsg() == EMouseMsg::LBUTTON_DBLCLK)
|
|
||||||
{
|
|
||||||
EMouseListener::runCallback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
#include "..\etools.h"
|
|
||||||
#include "..\Win\winbase.h"
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
|
|
||||||
// 鼠标消息
|
|
||||||
e2d::EMouseMsg mouseMsg;
|
|
||||||
// 鼠标消息监听器
|
|
||||||
std::vector<e2d::EMouseListener*> m_vMouseListeners;
|
|
||||||
// 按键消息监听器
|
|
||||||
//std::vector<e2d::EKeyListener*> m_vKeyListeners;
|
|
||||||
|
|
||||||
|
|
||||||
DWORD e2d::EMouseMsg::getX()
|
|
||||||
{
|
|
||||||
return LOWORD(mouseMsg.m_lParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD e2d::EMouseMsg::getY()
|
|
||||||
{
|
|
||||||
return HIWORD(mouseMsg.m_lParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EPoint e2d::EMouseMsg::getPos()
|
|
||||||
{
|
|
||||||
return EPoint(LOWORD(mouseMsg.m_lParam), HIWORD(mouseMsg.m_lParam));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool e2d::EMouseMsg::isLButtonDown()
|
|
||||||
{
|
|
||||||
return GET_KEYSTATE_WPARAM(mouseMsg.m_wParam) == MK_LBUTTON;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool e2d::EMouseMsg::isMButtonDown()
|
|
||||||
{
|
|
||||||
return GET_KEYSTATE_WPARAM(mouseMsg.m_wParam) == MK_MBUTTON;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool e2d::EMouseMsg::isRButtonDown()
|
|
||||||
{
|
|
||||||
return GET_KEYSTATE_WPARAM(mouseMsg.m_wParam) == MK_RBUTTON;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool e2d::EMouseMsg::isShiftDown()
|
|
||||||
{
|
|
||||||
return GET_KEYSTATE_WPARAM(mouseMsg.m_wParam) == MK_SHIFT;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool e2d::EMouseMsg::isCtrlDown()
|
|
||||||
{
|
|
||||||
return GET_KEYSTATE_WPARAM(mouseMsg.m_wParam) == MK_CONTROL;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD e2d::EMouseMsg::getWheelDelta()
|
|
||||||
{
|
|
||||||
return GET_WHEEL_DELTA_WPARAM(mouseMsg.m_wParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EMouseMsg::MSG e2d::EMouseMsg::getMsg()
|
|
||||||
{
|
|
||||||
return MSG(mouseMsg.m_nMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void e2d::EMsgManager::MouseProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
// 保存鼠标消息
|
|
||||||
mouseMsg.m_nMsg = message;
|
|
||||||
mouseMsg.m_wParam = wParam;
|
|
||||||
mouseMsg.m_lParam = lParam;
|
|
||||||
// 执行鼠标消息监听函数
|
|
||||||
for (auto mlistener : m_vMouseListeners)
|
|
||||||
{
|
|
||||||
if (mlistener->isRunning())
|
|
||||||
{
|
|
||||||
mlistener->runCallback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::EMsgManager::KeyboardProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (message)
|
|
||||||
{
|
|
||||||
case WM_KEYDOWN:
|
|
||||||
case WM_KEYUP:
|
|
||||||
case WM_CHAR:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (auto mlistener : m_vMouseListeners)
|
|
||||||
{
|
|
||||||
if (mlistener->isRunning())
|
|
||||||
{
|
|
||||||
mlistener->runCallback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::EMsgManager::addListener(e2d::EMouseListener * listener)
|
|
||||||
{
|
|
||||||
if (listener)
|
|
||||||
{
|
|
||||||
listener->start();
|
|
||||||
listener->retain();
|
|
||||||
listener->setParentScene(EApp::get()->getLoadingScene());
|
|
||||||
m_vMouseListeners.push_back(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::EMsgManager::__exec()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
#include "emacros.h"
|
#include "emacros.h"
|
||||||
#include "ecommon.h"
|
#include "ecommon.h"
|
||||||
#include "ebase.h"
|
#include "ebase.h"
|
||||||
|
#include "emsg.h"
|
||||||
#include "enodes.h"
|
#include "enodes.h"
|
||||||
#include "etools.h"
|
#include "etools.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ typedef struct
|
||||||
|
|
||||||
typedef std::function<void()> KEY_LISTENER_CALLBACK;
|
typedef std::function<void()> KEY_LISTENER_CALLBACK;
|
||||||
typedef std::function<void()> MOUSE_LISTENER_CALLBACK;
|
typedef std::function<void()> MOUSE_LISTENER_CALLBACK;
|
||||||
|
typedef std::function<void(EPoint mousePos)> MOUSE_CLICK_LISTENER_CALLBACK;
|
||||||
typedef std::function<void(EPoint begin, EPoint end)> MOUSE_DRAG_LISTENER_CALLBACK;
|
typedef std::function<void(EPoint begin, EPoint end)> MOUSE_DRAG_LISTENER_CALLBACK;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,406 @@
|
||||||
|
#pragma once
|
||||||
|
#include "ebase.h"
|
||||||
|
|
||||||
|
namespace e2d
|
||||||
|
{
|
||||||
|
|
||||||
|
class EMsgManager;
|
||||||
|
|
||||||
|
|
||||||
|
// 鼠标消息
|
||||||
|
class EMouseMsg
|
||||||
|
{
|
||||||
|
friend EMsgManager;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// 鼠标消息集合
|
||||||
|
enum class MOUSE_MSG
|
||||||
|
{
|
||||||
|
MOVE = 0x0200, // 鼠标移动
|
||||||
|
LBUTTON_DOWN, // 鼠标左键按下
|
||||||
|
LBUTTON_UP, // 鼠标左键抬起
|
||||||
|
LBUTTON_DBLCLK, // 鼠标左键双击
|
||||||
|
RBUTTON_DOWN, // 鼠标右键按下
|
||||||
|
RBUTTON_UP, // 鼠标右键抬起
|
||||||
|
RBUTTON_DBLCLK, // 鼠标右键双击
|
||||||
|
MBUTTON_DOWN, // 鼠标中键按下
|
||||||
|
MBUTTON_UP, // 鼠标中键抬起
|
||||||
|
MBUTTON_DBLCLK, // 鼠标中键双击
|
||||||
|
WHEEL // 滑动滚轮
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取鼠标横坐标
|
||||||
|
static DWORD getX();
|
||||||
|
|
||||||
|
// 获取鼠标纵坐标
|
||||||
|
static DWORD getY();
|
||||||
|
|
||||||
|
// 获取鼠标坐标
|
||||||
|
static EPoint getPos();
|
||||||
|
|
||||||
|
// 获取鼠标左键按下状态
|
||||||
|
static bool isLButtonDown();
|
||||||
|
|
||||||
|
// 获取鼠标中键按下状态
|
||||||
|
static bool isMButtonDown();
|
||||||
|
|
||||||
|
// 获取鼠标右键按下状态
|
||||||
|
static bool isRButtonDown();
|
||||||
|
|
||||||
|
// 获取 Shift 按键状态
|
||||||
|
static bool isShiftDown();
|
||||||
|
|
||||||
|
// 获取 Ctrl 按键状态
|
||||||
|
static bool isCtrlDown();
|
||||||
|
|
||||||
|
// 获取鼠标滚轮值
|
||||||
|
static DWORD getWheelDelta();
|
||||||
|
|
||||||
|
// 获取当前鼠标消息
|
||||||
|
static MOUSE_MSG getMsg();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
UINT m_nMsg = 0;
|
||||||
|
WPARAM m_wParam = 0;
|
||||||
|
LPARAM m_lParam = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 监听器
|
||||||
|
class EListener :
|
||||||
|
public EObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EListener();
|
||||||
|
|
||||||
|
EListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
// 获取监听器状态
|
||||||
|
bool isRunning() const;
|
||||||
|
|
||||||
|
// 启动监听
|
||||||
|
void start();
|
||||||
|
|
||||||
|
// 停止监听
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
// 进入等待状态
|
||||||
|
void wait();
|
||||||
|
|
||||||
|
// 唤醒
|
||||||
|
void notify();
|
||||||
|
|
||||||
|
// 获取监听器名称
|
||||||
|
EString getName() const;
|
||||||
|
|
||||||
|
// 获取监听器所在场景
|
||||||
|
EScene * getParentScene() const;
|
||||||
|
|
||||||
|
// 设置监听器名称
|
||||||
|
void setName(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
// 设置监听器所在场景
|
||||||
|
void setParentScene(
|
||||||
|
EScene * scene
|
||||||
|
);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
EString m_sName;
|
||||||
|
bool m_bRunning;
|
||||||
|
bool m_bWaiting;
|
||||||
|
EScene * m_pParentScene;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 鼠标消息监听器
|
||||||
|
class EMouseListener :
|
||||||
|
public EListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EMouseListener();
|
||||||
|
|
||||||
|
EMouseListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseListener(
|
||||||
|
const MOUSE_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseListener(
|
||||||
|
EString name,
|
||||||
|
const MOUSE_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
// 执行监听器回调函数
|
||||||
|
virtual void runCallback();
|
||||||
|
|
||||||
|
// 设置监听器回调函数
|
||||||
|
void setCallback(
|
||||||
|
const MOUSE_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MOUSE_LISTENER_CALLBACK m_callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 鼠标点击消息监听器
|
||||||
|
class EMouseClickListener :
|
||||||
|
public EMouseListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EMouseClickListener();
|
||||||
|
|
||||||
|
EMouseClickListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseClickListener(
|
||||||
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseClickListener(
|
||||||
|
EString name,
|
||||||
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
// 执行监听器回调函数
|
||||||
|
virtual void runCallback() override;
|
||||||
|
|
||||||
|
// 设置监听器回调函数
|
||||||
|
void setCallback(
|
||||||
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MOUSE_CLICK_LISTENER_CALLBACK m_callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 鼠标拖动消息监听器
|
||||||
|
class EMouseDraggedListener :
|
||||||
|
public EMouseListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EMouseDraggedListener();
|
||||||
|
|
||||||
|
EMouseDraggedListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseDraggedListener(
|
||||||
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
EMouseDraggedListener(
|
||||||
|
EString name,
|
||||||
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
// 执行监听器回调函数
|
||||||
|
virtual void runCallback() override;
|
||||||
|
|
||||||
|
// 设置监听器回调函数
|
||||||
|
void setCallback(
|
||||||
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
EPoint m_Begin;
|
||||||
|
EPoint m_End;
|
||||||
|
MOUSE_DRAG_LISTENER_CALLBACK m_callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 按键消息
|
||||||
|
class EKeyMsg
|
||||||
|
{
|
||||||
|
friend EMsgManager;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// 按键消息类型集合
|
||||||
|
enum class KEYBOARD_MSG
|
||||||
|
{
|
||||||
|
KEY_DOWN = 0x0100, // 按下
|
||||||
|
KEY_UP // 抬起
|
||||||
|
};
|
||||||
|
|
||||||
|
// 按键键值集合
|
||||||
|
enum class KEY
|
||||||
|
{
|
||||||
|
A = 'A', B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, // 字母键值
|
||||||
|
NUM0 = '0', NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, // 数字键值
|
||||||
|
NUMPAD0 = 0x60, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, // 数字小键盘键值
|
||||||
|
F1 = 0x70, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, // F键键值
|
||||||
|
MULTIPLY, // 乘号键键值
|
||||||
|
ADD, // 加号键键值
|
||||||
|
SEPARATOR, // 分割键键值
|
||||||
|
SUBTRACT, // 减号键键值
|
||||||
|
DECIMAL, // 小数点键键值
|
||||||
|
DIVIDE, // 除号键键值
|
||||||
|
TAB = 0x09, // TAB 键键值
|
||||||
|
ENTER = 0x0D, // 回车键键值
|
||||||
|
SHIFT, CTRL, // SHIFT 键键值
|
||||||
|
ESC = 0x1B, // ESCAPE 键键值
|
||||||
|
SPACE = 0x20, // 空格键键值
|
||||||
|
PAGE_UP, // PageUp 键键值
|
||||||
|
PAGE_DOWN, // PageDown 键键值
|
||||||
|
END, // End 键键值
|
||||||
|
HOME, // Home 键键值
|
||||||
|
LEFT, // 左键键值
|
||||||
|
UP, // 上键键值
|
||||||
|
RIGHT, // 右键键值
|
||||||
|
DOWN // 下键键值
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取按键消息类型
|
||||||
|
static KEYBOARD_MSG getMsg();
|
||||||
|
|
||||||
|
// 获取键值
|
||||||
|
static KEY getVal();
|
||||||
|
|
||||||
|
// 获取按键消息的计数
|
||||||
|
static DWORD getCount();
|
||||||
|
|
||||||
|
// 获取特定按键的状态
|
||||||
|
static bool isKeyDown(
|
||||||
|
KEY key
|
||||||
|
);
|
||||||
|
|
||||||
|
// 获取大小写锁定状态
|
||||||
|
static bool isCapitalLockOn();
|
||||||
|
|
||||||
|
// 获取数字小键盘锁定状态
|
||||||
|
static bool isNumpadLockOn();
|
||||||
|
|
||||||
|
// 获取滑动锁定状态
|
||||||
|
static bool isScrollLockOn();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
UINT m_nMsg = 0;
|
||||||
|
WPARAM m_wParam = 0;
|
||||||
|
LPARAM m_lParam = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 按键消息监听器
|
||||||
|
class EKeyListener :
|
||||||
|
public EListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EKeyListener();
|
||||||
|
|
||||||
|
EKeyListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
EKeyListener(
|
||||||
|
const KEY_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
EKeyListener(
|
||||||
|
EString name,
|
||||||
|
const KEY_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
// 执行监听器回调函数
|
||||||
|
virtual void runCallback();
|
||||||
|
|
||||||
|
// 设置监听器回调函数
|
||||||
|
void setCallback(
|
||||||
|
const KEY_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
KEY_LISTENER_CALLBACK m_callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 按键按下消息监听
|
||||||
|
class EKeyPressListener :
|
||||||
|
public EKeyListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EKeyPressListener();
|
||||||
|
|
||||||
|
EKeyPressListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
EKeyPressListener(
|
||||||
|
const KEY_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
EKeyPressListener(
|
||||||
|
EString name,
|
||||||
|
const KEY_LISTENER_CALLBACK &callback
|
||||||
|
);
|
||||||
|
|
||||||
|
// 执行监听器回调函数
|
||||||
|
virtual void runCallback() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 消息管理器
|
||||||
|
class EMsgManager
|
||||||
|
{
|
||||||
|
friend EApp;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// 添加鼠标消息监听器
|
||||||
|
static void addListener(
|
||||||
|
EMouseListener * listener,
|
||||||
|
EScene * pParentScene
|
||||||
|
);
|
||||||
|
|
||||||
|
// 添加按键消息监听器
|
||||||
|
static void addListener(
|
||||||
|
EKeyListener * listener,
|
||||||
|
EScene * pParentScene
|
||||||
|
);
|
||||||
|
|
||||||
|
// 启动具有相同名称的监听器
|
||||||
|
static void startListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
// 停止具有相同名称的监听器
|
||||||
|
static void stopListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
// 删除具有相同名称的监听器
|
||||||
|
static void delListener(
|
||||||
|
EString name
|
||||||
|
);
|
||||||
|
|
||||||
|
// 挂起场景上的所有监听器
|
||||||
|
static void waitAllListenersOnScene(
|
||||||
|
EScene * scene
|
||||||
|
);
|
||||||
|
|
||||||
|
// 重启场景上的所有监听器
|
||||||
|
static void notifyAllListenersOnScene(
|
||||||
|
EScene * scene
|
||||||
|
);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static void MouseProc(
|
||||||
|
UINT message,
|
||||||
|
WPARAM wParam,
|
||||||
|
LPARAM lParam
|
||||||
|
);
|
||||||
|
|
||||||
|
static void KeyboardProc(
|
||||||
|
UINT message,
|
||||||
|
WPARAM wParam,
|
||||||
|
LPARAM lParam
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
275
Easy2D/etools.h
275
Easy2D/etools.h
|
|
@ -4,9 +4,7 @@
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
|
||||||
class EMsgManager;
|
// 对象管理器
|
||||||
|
|
||||||
|
|
||||||
class EObjectManager
|
class EObjectManager
|
||||||
{
|
{
|
||||||
friend EApp;
|
friend EApp;
|
||||||
|
|
@ -25,275 +23,4 @@ private:
|
||||||
static void __flush();
|
static void __flush();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class EMouseMsg
|
|
||||||
{
|
|
||||||
friend EMsgManager;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// 鼠标消息集合
|
|
||||||
enum MSG
|
|
||||||
{
|
|
||||||
MOVE = 0x0200, // 鼠标移动
|
|
||||||
LBUTTON_DOWN, // 鼠标左键按下
|
|
||||||
LBUTTON_UP, // 鼠标左键抬起
|
|
||||||
LBUTTON_DBLCLK, // 鼠标左键双击
|
|
||||||
RBUTTON_DOWN, // 鼠标右键按下
|
|
||||||
RBUTTON_UP, // 鼠标右键抬起
|
|
||||||
RBUTTON_DBLCLK, // 鼠标右键双击
|
|
||||||
MBUTTON_DOWN, // 鼠标中键按下
|
|
||||||
MBUTTON_UP, // 鼠标中键抬起
|
|
||||||
MBUTTON_DBLCLK, // 鼠标中键双击
|
|
||||||
WHEEL // 滑动滚轮
|
|
||||||
};
|
|
||||||
|
|
||||||
// 获取鼠标横坐标
|
|
||||||
static DWORD getX();
|
|
||||||
|
|
||||||
// 获取鼠标纵坐标
|
|
||||||
static DWORD getY();
|
|
||||||
|
|
||||||
// 获取鼠标坐标
|
|
||||||
static EPoint getPos();
|
|
||||||
|
|
||||||
// 获取鼠标左键按下状态
|
|
||||||
static bool isLButtonDown();
|
|
||||||
|
|
||||||
// 获取鼠标中键按下状态
|
|
||||||
static bool isMButtonDown();
|
|
||||||
|
|
||||||
// 获取鼠标右键按下状态
|
|
||||||
static bool isRButtonDown();
|
|
||||||
|
|
||||||
// 获取 Shift 按键状态
|
|
||||||
static bool isShiftDown();
|
|
||||||
|
|
||||||
// 获取 Ctrl 按键状态
|
|
||||||
static bool isCtrlDown();
|
|
||||||
|
|
||||||
// 获取鼠标滚轮值
|
|
||||||
static DWORD getWheelDelta();
|
|
||||||
|
|
||||||
// 获取当前鼠标消息
|
|
||||||
static MSG getMsg();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
UINT m_nMsg = 0;
|
|
||||||
WPARAM m_wParam = 0;
|
|
||||||
LPARAM m_lParam = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EListener :
|
|
||||||
public EObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EListener();
|
|
||||||
|
|
||||||
EListener(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
// 获取监听器状态
|
|
||||||
bool isRunning() const;
|
|
||||||
|
|
||||||
// 启动监听
|
|
||||||
void start();
|
|
||||||
|
|
||||||
// 停止监听
|
|
||||||
void stop();
|
|
||||||
|
|
||||||
// 进入等待状态
|
|
||||||
void wait();
|
|
||||||
|
|
||||||
// 唤醒
|
|
||||||
void notify();
|
|
||||||
|
|
||||||
// 获取监听器名称
|
|
||||||
EString getName() const;
|
|
||||||
|
|
||||||
// 获取监听器所在场景
|
|
||||||
EScene * getParentScene() const;
|
|
||||||
|
|
||||||
// 设置监听器名称
|
|
||||||
void setName(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
// 设置监听器所在场景
|
|
||||||
void setParentScene(
|
|
||||||
EScene * scene
|
|
||||||
);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
EString m_sName;
|
|
||||||
bool m_bRunning;
|
|
||||||
bool m_bWaiting;
|
|
||||||
EScene * m_pParentScene;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EMouseListener :
|
|
||||||
public EListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EMouseListener();
|
|
||||||
|
|
||||||
EMouseListener(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseListener(
|
|
||||||
const MOUSE_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseListener(
|
|
||||||
EString name,
|
|
||||||
const MOUSE_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
// 执行监听器回调函数
|
|
||||||
virtual void runCallback();
|
|
||||||
|
|
||||||
// 设置监听器回调函数
|
|
||||||
void setCallback(const MOUSE_LISTENER_CALLBACK &callback);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
MOUSE_LISTENER_CALLBACK m_callback;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EMouseClickListener :
|
|
||||||
public EMouseListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EMouseClickListener();
|
|
||||||
|
|
||||||
EMouseClickListener(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseClickListener(
|
|
||||||
const MOUSE_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseClickListener(
|
|
||||||
EString name,
|
|
||||||
const MOUSE_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
// 执行监听器回调函数
|
|
||||||
virtual void runCallback() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EMouseDraggedListener :
|
|
||||||
public EMouseListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EMouseDraggedListener();
|
|
||||||
|
|
||||||
EMouseDraggedListener(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseDraggedListener(
|
|
||||||
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
EMouseDraggedListener(
|
|
||||||
EString name,
|
|
||||||
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
// 执行监听器回调函数
|
|
||||||
virtual void runCallback() override;
|
|
||||||
|
|
||||||
// 设置监听器回调函数
|
|
||||||
void setCallback(const MOUSE_DRAG_LISTENER_CALLBACK &callback);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
EPoint m_Begin;
|
|
||||||
EPoint m_End;
|
|
||||||
MOUSE_DRAG_LISTENER_CALLBACK m_callback;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EKeyMsg
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// 鼠标消息集合
|
|
||||||
enum MESSAGE
|
|
||||||
{
|
|
||||||
MOVE = 0x0200, // 鼠标移动
|
|
||||||
LBUTTON_DOWN, // 鼠标左键按下
|
|
||||||
LBUTTON_UP, // 鼠标左键抬起
|
|
||||||
LBUTTON_DBLCLK, // 鼠标左键双击
|
|
||||||
RBUTTON_DOWN, // 鼠标右键按下
|
|
||||||
RBUTTON_UP, // 鼠标右键抬起
|
|
||||||
RBUTTON_DBLCLK, // 鼠标右键双击
|
|
||||||
MBUTTON_DOWN, // 鼠标中键按下
|
|
||||||
MBUTTON_UP, // 鼠标中键抬起
|
|
||||||
MBUTTON_DBLCLK, // 鼠标中键双击
|
|
||||||
WHEEL // 滑动滚轮
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EKeyListener :
|
|
||||||
public EListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EKeyListener();
|
|
||||||
|
|
||||||
EKeyListener(
|
|
||||||
EString name
|
|
||||||
);
|
|
||||||
|
|
||||||
EKeyListener(
|
|
||||||
const KEY_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
EKeyListener(
|
|
||||||
EString name,
|
|
||||||
const KEY_LISTENER_CALLBACK &callback
|
|
||||||
);
|
|
||||||
|
|
||||||
// 执行监听器回调函数
|
|
||||||
void runCallback();
|
|
||||||
|
|
||||||
// 设置监听器回调函数
|
|
||||||
void setCallback(const KEY_LISTENER_CALLBACK &callback);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
KEY_LISTENER_CALLBACK m_callback;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class EMsgManager
|
|
||||||
{
|
|
||||||
friend EApp;
|
|
||||||
|
|
||||||
public:
|
|
||||||
static void MouseProc(
|
|
||||||
UINT message,
|
|
||||||
WPARAM wParam,
|
|
||||||
LPARAM lParam
|
|
||||||
);
|
|
||||||
|
|
||||||
static void KeyboardProc(
|
|
||||||
UINT message,
|
|
||||||
WPARAM wParam,
|
|
||||||
LPARAM lParam
|
|
||||||
);
|
|
||||||
|
|
||||||
static void addListener(
|
|
||||||
EMouseListener * listener
|
|
||||||
);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
static void __exec();
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue