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:
|
||||
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;
|
||||
}
|
||||
|
||||
|
1
main.cpp
1
main.cpp
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user