www.pudn.com > Chesswzq.rar > WzqWin.cpp
#include "WzqWin.hpp" #include//#include #include "WzqMsgTypes.hpp" WzqWin::WzqWin():Base() { } WzqWin::~WzqWin() { } void WzqWin::Init() { Base::Init(); SetTitle(Tr(L"Five Chess")); m_new_action.Init(this, Tr(L"New")); m_cancel_action.Init(this,Tr(L"Close")); SetSoftkey(MmiWindow::PrimarySk, &m_new_action); SetSoftkey(MmiWindow::SecondarySk, &m_cancel_action); } void WzqWin::OnOpen() { pdc=(PaintDc*)GetDeviceContext(); m_wzq.Init(pdc); } /* BOOLEAN WzqWin::OnConfirm() { return Base::OnConfirm(); } */ BOOLEAN WzqWin::OnCancel() { Base::OnCancel(); Close(); return true; } BOOLEAN WzqWin::OnMessage(const Message &msg) { BOOLEAN dispatched = FALSE; switch (msg.Id()) { case KeyAutoRepeatMsg::ID : { KeyAutoRepeatMsg *keyRepeat_msg; CastMsg(keyRepeat_msg, &msg); if( keyRepeat_msg->GetKeyCode()==c_key_right || keyRepeat_msg->GetKeyCode()==c_key_left || keyRepeat_msg->GetKeyCode()==c_key_down || keyRepeat_msg->GetKeyCode()==c_key_up) OnKeyDown(keyRepeat_msg->GetKeyCode()); } default: dispatched = Base::OnMessage(msg); break; } return dispatched; } // OnMessage void WzqWin::OnPaint(const Rect &repaint_rect) { Base::OnPaint(repaint_rect); m_wzq.ReDraw(); } /* void WzqWin::OnActionExecuted(Action *action) { Base::OnActionExecuted(action); } */ BOOLEAN WzqWin::OnKeyDown(KeyCode key_code) { BOOLEAN dispatched = TRUE; switch (key_code){ case c_softkey_left: m_wzq.NewGame(); break; case c_key_left: m_wzq.MovetoLeft(); break; case c_key_right: m_wzq.MovetoRight(); break; case c_key_down: m_wzq.MovetoDown(); break; case c_key_up: m_wzq.MovetoUp(); break; case c_key_option: if (m_wzq.GetWinState()) { return TRUE; } else m_wzq.downzi(); break; default: dispatched =Base::OnKeyDown(key_code); break; } InvalidateClient(/*,FALSE*/); return dispatched; }