int KUiESCDlg::OnKeyDown(unsigned int uKey) { int nRet = 1; KWndButton* pActive = NULL; KWndButton* pToActive = NULL; if (uKey == VK_RETURN) { if (pActive = GetActiveBtn()) OnClickButton(pActive); } else if (uKey == VK_ESCAPE) CloseWindow(false); else if (uKey == VK_UP) { pActive = GetActiveBtn(); if (pActive == &m_ExitGameBtn) pToActive = &m_ContinueGameBtn; //else if (pActive == &m_ExitBtn) // pToActive = &m_ExitGameBtn; else if (pActive == &m_HelpBtn) pToActive = &m_ExitGameBtn; //else if (pActive == &m_TaskBtn) // pToActive = &m_HelpBtn; else if (pActive == &m_OptionsBtn) pToActive = &m_HelpBtn; else if (pActive == &m_ContinueGameBtn) pToActive = &m_OptionsBtn; else pToActive = &m_ExitGameBtn; } else if (uKey == VK_DOWN) { pActive = GetActiveBtn(); if (pActive == &m_ExitGameBtn) pToActive = &m_HelpBtn; //else if (pActive == &m_ExitBtn) // pToActive = &m_HelpBtn; else if (pActive == &m_HelpBtn) pToActive = &m_OptionsBtn; //else if (pActive == &m_TaskBtn) // pToActive = &m_OptionsBtn; else if (pActive == &m_OptionsBtn) pToActive = &m_ContinueGameBtn; else if (pActive == &m_ContinueGameBtn) pToActive = &m_ExitGameBtn; else pToActive = &m_ExitGameBtn; } else nRet = 0; if (pToActive) { POINT Pos; SIZE Size; pToActive->GetAbsolutePos((int*)&Pos.x, (int*)&Pos.y); pToActive->GetSize((int*)&Size.cx, (int*)&Size.cy); Pos.x += Size.cx / 2; Pos.y += Size.cy / 2; Wnd_SetCursorPos(Pos.x, Pos.y); } return nRet; }