コード例 #1
0
ファイル: ScoreView.cpp プロジェクト: Michael-Z/qipai-game
//初始化函数
BOOL CScoreView::OnInitDialog()
{
	__super::OnInitDialog();

	//状态变量
	m_uLeaveTime=15;

	//设置界面
	SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL);

	//设置按钮
	m_btContinue.SetTextColor(RGB(255,255,255));
	m_btQuitGame.SetTextColor(RGB(255,255,255));
	m_btContinue.SetButtonImage(IDB_BT_GAME_SCORE,AfxGetInstanceHandle(),false);
	m_btQuitGame.SetButtonImage(IDB_BT_GAME_SCORE,AfxGetInstanceHandle(),false);

	//居中窗口
	CenterWindow(GetParent());

	//移动窗口
	CImageHandle HandleBack(&m_ImageBack);
	SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER);

	//移动按钮
	CRect rcButton;
	m_btContinue.GetWindowRect(&rcButton);
	m_btQuitGame.SetWindowPos(NULL,m_ImageBack.GetWidth()/2+15,m_ImageBack.GetHeight()-rcButton.Height()-8,
		0,0,SWP_NOSIZE|SWP_NOZORDER);
	m_btContinue.SetWindowPos(NULL,m_ImageBack.GetWidth()/2-rcButton.Width()-15,m_ImageBack.GetHeight()-rcButton.Height()-8,
		0,0,SWP_NOSIZE|SWP_NOZORDER);

	return TRUE;
}
コード例 #2
0
ファイル: TimerControl.cpp プロジェクト: Michael-Z/qipai-game
void CTimerControl::SetBitmap(UINT uIdBack,UINT uIdArrow)
{
	m_ImageBack.SetLoadInfo(uIdBack,AfxGetInstanceHandle());
	m_ImageArrow.SetLoadInfo(uIdArrow,AfxGetInstanceHandle());
	CImageHandle HandleBack(&m_ImageBack);
	m_Size.cx=m_ImageBack.GetWidth();
	m_Size.cy=m_ImageBack.GetHeight();
}
コード例 #3
0
ファイル: TimerControl.cpp プロジェクト: Michael-Z/qipai-game
//重画函数
void CTimerControl::OnPaint()
{
	CPaintDC dc(this);

	//获取位置
	CRect rcClient;
	GetClientRect(&rcClient);

	//加载位图
	CImageHandle HandleBack(&m_ImageBack);
	CImageHandle HandleArrow(&m_ImageArrow);

	//创建位图
	CBitmap BufferImage;
	if (!BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height())) return;

	//创建 DC
	CDC BufferDC;
	BufferDC.CreateCompatibleDC(&dc);
	BufferDC.SelectObject(&BufferImage);

	//m_ImageBack.AlphaDrawImage(&BufferDC,0,0,RGB(255,0,255));
	switch(m_dwCurrentIndex)
	{
		case 0:
			m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()/2-m_ImageArrow.GetWidth()/4/2,0,16,16,0,0,RGB(255,0,255));
			break;
		case 1:
			m_ImageArrow.AlphaDrawImage(&BufferDC,0,rcClient.Height()/2-m_ImageArrow.GetHeight()/2,16,16,16,0,RGB(255,0,255));
			break;
		case 2:
			m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()/2-m_ImageArrow.GetWidth()/4/2,rcClient.Height()-m_ImageArrow.GetHeight(),16,16,32,0,RGB(255,0,255));
			break;
		case 3:
			m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()-m_ImageArrow.GetWidth()/4,rcClient.Height()/2-m_ImageArrow.GetHeight()/2,16,16,48,0,RGB(255,0,255));
			break;
	}

	BufferDC.SetTextColor(RGB(220,220,220));
	BufferDC.SetBkMode(TRANSPARENT);
	BufferDC.SetTextAlign(TA_CENTER);
	CString str;
	if (m_nTimer!=-1)
		str.Format("%02d",m_nTimer/2);
	else
		str="00";
	BufferDC.TextOut(rcClient.Width()/2,rcClient.Height()/2-10,str);

	//绘画界面
	dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY);

	//清理资源
	BufferDC.DeleteDC();
	BufferImage.DeleteObject();

	return;
}
コード例 #4
0
ファイル: ScoreView.cpp プロジェクト: Michael-Z/qipai-game
//重画函数
void CScoreView::OnPaint() 
{
	CPaintDC dc(this); 

	//加载资源
	CImageHandle HandleBack(&m_ImageBack);

	//绘画背景
	m_ImageBack.AlphaDrawImage(&dc,0,0,RGB(255,0,255));

	//设置 DC
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(250,250,250));
	dc.SelectObject(&CSkinAttribute::m_DefaultFont);

	//提示信息
	TCHAR szBuffer[128]=TEXT("");

	//显示分数
	CImageHandle HandleWinLose(&m_ImageWinLose);
	INT nWinLoseWidth = m_ImageWinLose.GetWidth()/2;
	INT nWinLostHeight = m_ImageWinLose.GetHeight();
	WORD wCount = 0;
	for (WORD i=0;i<CountArray(m_szUserName);i++)
	{
		if (m_szUserName[i][0]!=0)
		{
			//输出名字
			INT nScPos = 80;
			CRect rcName(26,wCount*29+nScPos,126,(wCount+1)*29+nScPos);
			dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcName,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);

			//输出成绩
			CRect rcScore(95,wCount*29+nScPos,195,(wCount+1)*29+nScPos);
			_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]);
			dc.DrawText(szBuffer,lstrlen(szBuffer),&rcScore,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);

			//胜负标志
			m_ImageWinLose.AlphaDrawImage(&dc,218-nWinLoseWidth/2,wCount*29+nScPos+13-nWinLostHeight/2,nWinLoseWidth,nWinLostHeight,
				(m_lScore[i]>0)?0:nWinLoseWidth,0,RGB(255,0,255));

			//输出税收
			CRect rcTax(235,wCount*29+nScPos,335,(wCount+1)*29+nScPos);
			_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lTax[i]);
			dc.DrawText(szBuffer,lstrlen(szBuffer),&rcTax,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);
			
			wCount++;
		}
	}

	return;
}
コード例 #5
0
//重画函数
void CConcealCardView::OnPaint() 
{
	CPaintDC dc(this); 

	//加载资源
	CImageHandle HandleBack(&m_ImageBack);
	CImageHandle HandleCard(&m_ImageCard);

	//绘画背景
	m_ImageBack.BitBlt(dc,0,0);

	//绘画扑克
	if (m_cbConcealCount>0)
	{
		//获取位置
		CRect rcClient;
		GetClientRect(&rcClient);

		//计算大小
		CSize ControlSize;
		ControlSize.cy=m_CardSize.cy;
		ControlSize.cx=m_CardSize.cx+(m_cbConcealCount-1)*18;

		//定义位置
		int nXPos=(rcClient.Width()-ControlSize.cx)/2+17;
		int nYPos=(rcClient.Height()-ControlSize.cy)/2;

		//绘画扑克
		for (BYTE i=0;i<m_cbConcealCount;i++)
		{
			//变量定义
			int nXImagePos=0,nYImagePos=0;

			//图片位置
			if (m_cbConcealCard[i]!=0)
			{
				if ((m_cbConcealCard[i]==0x4E)||(m_cbConcealCard[i]==0x4F))
				{
					nYImagePos=((m_cbConcealCard[i]&CARD_MASK_COLOR)>>4)*m_CardSize.cy;
					nXImagePos=((m_cbConcealCard[i]&CARD_MASK_VALUE)%14)*m_CardSize.cx;
				}
				else
				{
					nXImagePos=((m_cbConcealCard[i]&CARD_MASK_VALUE)-1)*m_CardSize.cx;
					nYImagePos=((m_cbConcealCard[i]&CARD_MASK_COLOR)>>4)*m_CardSize.cy;
				}
			}
コード例 #6
0
ファイル: ScoreView.cpp プロジェクト: Michael-Z/qipai-game
//建立消息
int CScoreView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (__super::OnCreate(lpCreateStruct)==-1) return -1;

	//设置数据
	ZeroMemory(m_lGameTax,sizeof(m_lGameTax));
	ZeroMemory(m_lScore,sizeof(m_lScore));
	ZeroMemory(m_szUserName,sizeof(m_szUserName));

	//设置界面
	SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL);

	//移动窗口
	CImageHandle HandleBack(&m_ImageBack);
	SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER);

	return 0;
}
コード例 #7
0
void Status_OnKeyDown(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	if (!HandleMsg(wParam,lParam))		//该按键盘不需要处理
	{
		return ;
	}
    
	if (wParam == VK_BACK)
	{
		HandleBack();
	}
	else if (wParam == VK_SPACE)
	{
		HandleSpace();
	}
	//小键盘
	else if (wParam >= VK_NUMPAD4 && wParam <= VK_NUMPAD9 && wParam != VK_NUMPAD6)
	{
		 Handle_Small_Num(wParam);
	}
	// 0 - 9
	else if (wParam >= 0x30 && wParam <= 0x39)
	{
		HandleNum(wParam,lParam);
	}
	// A - Z
	else if (wParam >= 0x41 && wParam <= 0x5A)
	{
		HandleChar(wParam,lParam);
	}

	else if (wParam == VK_CONTROL)
	{
		HandleControl();
	}
	//上翻页
	else if (wParam == VK_LEFT)
	{
	}
	//下翻
	else if (wParam == VK_RIGHT)
	{
	}
}