goto hozzáadva
This commit is contained in:
parent
11178a3ce8
commit
2e9f2d45d9
@ -97,13 +97,18 @@ int eg3d::EventHandler::processEvent(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||||||
|
|
||||||
case WM_LBUTTONDOWN:
|
case WM_LBUTTONDOWN:
|
||||||
et = ET_LMouseDown;
|
et = ET_LMouseDown;
|
||||||
|
goto MOUSE_CONT;
|
||||||
case WM_LBUTTONUP:
|
case WM_LBUTTONUP:
|
||||||
et = ET_LMouseUp;
|
et = ET_LMouseUp;
|
||||||
|
goto MOUSE_CONT;
|
||||||
case WM_RBUTTONDOWN:
|
case WM_RBUTTONDOWN:
|
||||||
et = ET_RMouseDown;
|
et = ET_RMouseDown;
|
||||||
|
goto MOUSE_CONT;
|
||||||
case WM_RBUTTONUP: {
|
case WM_RBUTTONUP: {
|
||||||
et = ET_RMouseUp;
|
et = ET_RMouseUp;
|
||||||
|
|
||||||
|
MOUSE_CONT:
|
||||||
|
|
||||||
auto assigments = mMouseAssignments.equal_range(et); // hozzárendelések elkérése
|
auto assigments = mMouseAssignments.equal_range(et); // hozzárendelések elkérése
|
||||||
auto rangeBegin = assigments.first;
|
auto rangeBegin = assigments.first;
|
||||||
auto rangeEnd = assigments.second;
|
auto rangeEnd = assigments.second;
|
||||||
@ -166,28 +171,41 @@ int eg3d::EventHandler::processEvent(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||||||
ClipCursor(nullptr);
|
ClipCursor(nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
goto KEYBOARD_CONT;
|
||||||
} // DIRECT NINCS BREAK
|
} // DIRECT NINCS BREAK
|
||||||
case WM_KEYUP: {
|
case WM_KEYUP: {
|
||||||
et = ET_KeyUp; // esemény típusának beállítása
|
et = ET_KeyUp; // esemény típusának beállítása
|
||||||
|
|
||||||
// esemény lekezelése
|
KEYBOARD_CONT:
|
||||||
if (mKeyAssigments.find(wParam) != mKeyAssigments.end())
|
|
||||||
|
auto assigments = mKeyAssigments.equal_range(wParam); // hozzárendelések elkérése
|
||||||
|
auto rangeBegin = assigments.first;
|
||||||
|
auto rangeEnd = assigments.second;
|
||||||
|
|
||||||
|
if (rangeBegin == rangeEnd) // ha nincs találat, akkor kilépünk
|
||||||
{
|
{
|
||||||
CB_AssigmentData cbAData = mKeyAssigments[wParam];
|
break;
|
||||||
|
|
||||||
EventHandlerCBData cbData;
|
|
||||||
|
|
||||||
cbData.pEH = pThis_EH; // eseménykezelõ pointere
|
|
||||||
cbData.eventType = et; // esemény típusa
|
|
||||||
cbData.pUser = cbAData.pUser; // elõre definiált pointer
|
|
||||||
|
|
||||||
cbData.hwnd = hwnd; // ablak fogantyúja
|
|
||||||
cbData.message = message; // üzenet
|
|
||||||
cbData.wParam = wParam; // ...
|
|
||||||
cbData.lParam = lParam; // ...
|
|
||||||
|
|
||||||
cbAData.pcbFunction(&cbData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// esemény lekezelése
|
||||||
|
EventHandlerCBData cbData;
|
||||||
|
|
||||||
|
cbData.pEH = pThis_EH; // eseménykezelõ pointere
|
||||||
|
cbData.eventType = et; // esemény típusa
|
||||||
|
|
||||||
|
cbData.hwnd = hwnd; // ablak fogantyúja
|
||||||
|
cbData.message = message; // üzenet
|
||||||
|
cbData.wParam = wParam; // ...
|
||||||
|
cbData.lParam = lParam; // ...
|
||||||
|
|
||||||
|
for (auto iter = rangeBegin; iter != rangeEnd; iter++)
|
||||||
|
{
|
||||||
|
if (iter->second.eventType == et) {
|
||||||
|
cbData.pUser = iter->second.pUser; // elõre definiált pointer beállítása
|
||||||
|
iter->second.pcbFunction(&cbData); // függvény meghívása
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
main.cpp
1
main.cpp
@ -44,6 +44,7 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
|
|||||||
CB_AssigmentData cbAData;
|
CB_AssigmentData cbAData;
|
||||||
cbAData.pcbFunction = keyCB;
|
cbAData.pcbFunction = keyCB;
|
||||||
cbAData.pUser = nullptr;
|
cbAData.pUser = nullptr;
|
||||||
|
cbAData.eventType = ET_KeyDown;
|
||||||
eventHandler.regKeyCB('Z', cbAData);
|
eventHandler.regKeyCB('Z', cbAData);
|
||||||
|
|
||||||
// FPS-mérő callback-függvény regisztrálása
|
// FPS-mérő callback-függvény regisztrálása
|
||||||
|
Loading…
x
Reference in New Issue
Block a user