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; 
}