goto hozzáadva

This commit is contained in:
Wiesner András 2020-03-21 09:35:31 +01:00
parent 11178a3ce8
commit 2e9f2d45d9
2 changed files with 35 additions and 16 deletions

View File

@ -97,13 +97,18 @@ int eg3d::EventHandler::processEvent(HWND hwnd, UINT message, WPARAM wParam, LPA
case WM_LBUTTONDOWN:
et = ET_LMouseDown;
goto MOUSE_CONT;
case WM_LBUTTONUP:
et = ET_LMouseUp;
goto MOUSE_CONT;
case WM_RBUTTONDOWN:
et = ET_RMouseDown;
goto MOUSE_CONT;
case WM_RBUTTONUP: {
et = ET_RMouseUp;
MOUSE_CONT:
auto assigments = mMouseAssignments.equal_range(et); // hozzárendelések elkérése
auto rangeBegin = assigments.first;
auto rangeEnd = assigments.second;
@ -166,28 +171,41 @@ int eg3d::EventHandler::processEvent(HWND hwnd, UINT message, WPARAM wParam, LPA
ClipCursor(nullptr);
}
}
goto KEYBOARD_CONT;
} // DIRECT NINCS BREAK
case WM_KEYUP: {
et = ET_KeyUp; // esemény típusának beállítása
// esemény lekezelése
if (mKeyAssigments.find(wParam) != mKeyAssigments.end())
KEYBOARD_CONT:
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];
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);
break;
}
// 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;
}

View File

@ -44,6 +44,7 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
CB_AssigmentData cbAData;
cbAData.pcbFunction = keyCB;
cbAData.pUser = nullptr;
cbAData.eventType = ET_KeyDown;
eventHandler.regKeyCB('Z', cbAData);
// FPS-mérő callback-függvény regisztrálása