⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientview.cpp

📁 这是用Windows编写的
💻 CPP
📖 第 1 页 / 共 2 页
字号:

#include "StdAfx.h"
#include "ClientView.h"
#include "ClientGameDlg.h"
#include ".\clientview.h"

//宏定义
#define BT_WIDTH							32						//按钮宽度
#define BT_HEIGHT							32						//按钮高度

//CBitmap				CClientPlayView::m_Back_Center;
//CBitmap				CClientPlayView::m_Bitmap_Num;
//BITMAP				CClientPlayView::m_Back_Center_Info;


BEGIN_MESSAGE_MAP(CClientPlayView, CUsingSkinClass)
	ON_WM_CREATE()
	ON_BN_CLICKED(IDC_BEGIN,OnHitBegin)
	ON_BN_CLICKED(IDC_OUT_CARD,OnHitOutCard)
	ON_BN_CLICKED(IDC_CONTINUE, OnHitContinue)
	ON_BN_CLICKED(IDC_LAST_CARD, OnHitLastTurn)
	ON_BN_CLICKED(IDC_Sort_Card, OnHitSortCard)//排序
	//ON_BN_CLICKED(IDC_GIVE_BACK,OnHitBackCard)
	//ON_BN_CLICKED(IDC_HAVE_THING, OnHitThing)
	//ON_BN_CLICKED(IDC_STOP, OnHitStop)
	ON_BN_CLICKED(IDC_PASS,OnHitPass)
	ON_BN_CLICKED(IDC_TISHI, OnTiShi)
	ON_WM_RBUTTONUP()
	ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

/*******************************************************************************************************/

//构造函数
CClientPlayView::CClientPlayView(void) :m_GameSet(this),m_GameInfo(this)//,m_GameEndView(this)
{
	//AfxSetResourceHandle(GetModuleHandle(CLIENT_DLL_NAME));

	//	if(g_ShowPicture)
	m_PicGameView.SetLoadInfo("pic\\bg3.jpg",CGameImageLink::m_bAutoLock);
	m_PicGameViewLogo.SetLoadInfo("pic\\PDK\\PDK.jpg",CGameImageLink::m_bAutoLock);
//	m_PicTopBar.SetLoadInfo("pic\\GmTop2.jpg",CGameImageLink::m_bAutoLock);						//顶端贴图
//	m_PicTopBarLeft.SetLoadInfo("pic\\GmTopPDK.jpg",CGameImageLink::m_bAutoLock);					//顶端贴图
////m_PicTopBarRight.SetLoadInfo("pic\\GmTop3.jpg",CGameImageLink::m_bAutoLock);					//顶端贴图

	m_PicJianTou.SetLoadInfo("pic\\jt.gif",CGameImageLink::m_bAutoLock);




	return;
}

//析构函数
CClientPlayView::~CClientPlayView(void)
{
}

//更新用户资料
void CClientPlayView::UpdateUserInfo(BYTE bViewStation)
{
	UpdateViewFace(NULL);
	return;
}

//绘画界面函数
void CClientPlayView::DrawViewFace(CDC * pDC, int iWidth, int iHeight)
{
	//绘画界面
	
		TCHAR szBuffer[20];

	pDC->FillSolidRect(0,0,BT_WIDTH,BT_HEIGHT,RGB(0,0,0));
//	if(g_ShowPicture)
//		DrawBackPic(pDC,DrawMode::DM_CENTENT,iWidth,iHeight);
//	else
//	{
 	DrawBackPic(pDC,DrawMode::DM_SPREAD,iWidth,iHeight);

		CGameImageHelper LogoHandle(&m_PicGameViewLogo);
		LogoHandle.BitBlt(pDC->GetSafeHdc(),(iWidth-LogoHandle.GetWidth())/2,(iHeight-LogoHandle.GetHeight())/2);

	

 

	///CDC NumDC;
	//NumDC.CreateCompatibleDC(pDC);
	//NumDC.SelectObject(&m_Bitmap_Num);

		// 画箭头	
		CClientGameDlg *p=CONTAINING_RECORD(this,CClientGameDlg,m_PlayView);
		if (p->m_iNowOutPeople != 255)
		{
			RECT r;
			GetClientRect(&r);
			int pos= p->ViewStation(p->m_iNowOutPeople);
			CGameImageHelper ImageHandle(&m_PicJianTou);  
			AFCStretchImage(pDC,m_PtTime[pos].x-12, m_PtTime[pos].y-16, 57,70, ImageHandle, ((pos + 3)%4)*57,0, 57,  70, RGB(0,0,0) );//绘画箭头
		}
 
	//绘画用户
	pDC->SetTextColor(RGB(255,255,255));
	for (int i=0;i<4;i++)
	{
		if (m_pUserItem[i]!=NULL)
		{
			UserInfoStruct * pUserInfo=&m_pUserItem[i]->GameUserInfo;
			if (i==1) pDC->SetTextAlign(TA_RIGHT|TA_TOP);
			else pDC->SetTextAlign(TA_LEFT|TA_TOP);
			pDC->TextOut(m_PtName[i].x,m_PtName[i].y,pUserInfo->szName);


			if (p->m_iNowOutPeople != 255)
			{
				pDC->SetTextAlign(TA_LEFT|TA_TOP);
				sprintf(szBuffer,TEXT("剩余%d张"),m_iLessCardCount[i]);
				pDC->TextOut(m_PtLogo[i].x,m_PtLogo[i].y+42,szBuffer,lstrlen(szBuffer));
			}

			DrawLogo(pDC,m_pUserItem[i]->GameUserInfo.bLogoID,m_PtLogo[i].x,m_PtLogo[i].y,pUserInfo->bUserState==USER_CUT_GAME);
			if (m_uTime[i]!=0) DrawTimer(pDC,m_PtTime[i].x,m_PtTime[i].y,m_uTime[i]);
			if (pUserInfo->bUserState==USER_ARGEE) DrawArgeeFlag(pDC,m_PtAgree[i].x,m_PtAgree[i].y);

		}
	}

	////绘画分数
	//if (m_bMeSide!=-1)
	//{
	//	sprintf(szBuffer,TEXT("%s得分:%d"),m_bMeSide?TEXT("本方"):TEXT("敌家"),m_iGamePoint);
	//	pDC->SetTextAlign(TA_LEFT|TA_TOP);
	//	pDC->TextOut(iWidth-170-VIEW_FRAME_RIGHT,iHeight-110-20,szBuffer,lstrlen(szBuffer));
	//}

sprintf(szBuffer,TEXT("已打%d局"),m_iBeenPlayCount);
pDC->TextOut(20,iHeight-20,szBuffer,lstrlen(szBuffer));

	////画框
	//CGameImageHelper TopBarHandle(&m_PicTopBar);
	//for(int i = 0; i < iWidth; i+=TopBarHandle.GetWidth())
	//{
	//	TopBarHandle.BitBlt(pDC->GetSafeHdc(),i,0);
	//}

	//CGameImageHelper TopBarLeftHandle(&m_PicTopBarLeft);
	//TopBarLeftHandle.BitBlt(pDC->GetSafeHdc(),0,0);

	//CGameImageHelper TopBarRightHandle(&m_PicTopBarRight);
	//TopBarRightHandle.BitBlt(pDC->GetSafeHdc(),iWidth - TopBarRightHandle.GetWidth(),0);



/*	CGameImageHelper BottomBarHandle(&m_PicBottomBar);
	for(int i = 0; i < iWidth; i+=BottomBarHandle.GetWidth())
	{
		BottomBarHandle.BitBlt(pDC->GetSafeHdc(),i,iHeight - BottomBarHandle.GetHeight());
	}

	CGameImageHelper BottomBarLeftHandle(&m_PicBottomBarLeft);
	BottomBarLeftHandle.BitBlt(pDC->GetSafeHdc(),0,iHeight - BottomBarHandle.GetHeight());

	CGameImageHelper BottomBarRightHandle(&m_PicBottomBarRight);
	BottomBarRightHandle.BitBlt(pDC->GetSafeHdc(),iWidth - BottomBarRightHandle.GetWidth(),iHeight - BottomBarHandle.GetHeight());
*/

	return;
}
 

//建立消息
int CClientPlayView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CUsingSkinClass::OnCreate(lpCreateStruct) == -1)	return -1;

	//建立控件
	//AfxSetResourceHandle(GetModuleHandle(CLIENT_DLL_NAME));

	//m_btOutCard.Create(TEXT("出牌"),WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,80,25),this,IDC_OUT_CARD);
	//m_btContinue.Create(TEXT("开始"),WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,80,25),this,IDC_CONTINUE);
	//m_btPass.Create(TEXT("不出"),WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,80,25),this,IDC_PASS);
	//m_btnTiShi.Create(TEXT("提示"),WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,80,25),this,IDC_TISHI);
	//m_btLastTurn.Create(TEXT("上一轮"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,75,25),this,IDC_LAST_CARD);
	//m_btSortCard.Create(TEXT("排序"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,50,25),this,IDC_Sort_Card);
	
	m_btOutCard.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_OUT_CARD);
	m_btOutCard.LoadButtonBitmap("pic\\PDK\\OutCard.gif",true);//出牌
	m_btContinue.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_CONTINUE); 
	m_btContinue.LoadButtonBitmap("pic\\PDK\\start.gif",true);//开始
	m_btPass.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_PASS);
	m_btPass.LoadButtonBitmap("pic\\PDK\\Pass.gif",true);//不出
	m_btnTiShi.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_TISHI);
	m_btnTiShi.LoadButtonBitmap("pic\\PDK\\tishi.gif",true);//提示
	m_btLastTurn.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_LAST_CARD);
	m_btLastTurn.LoadButtonBitmap("pic\\PDK\\first.gif",true);//上一轮
	m_btSortCard.Create(NULL,WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,54,34),this,IDC_Sort_Card);
	m_btSortCard.LoadButtonBitmap("pic\\PDK\\paixu.gif",true);//排序

	//m_btThing.Create(TEXT("有事要走"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,25,25),this,IDC_HAVE_THING);
	//m_btStop.Create(TEXT("提前结束"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|WS_DISABLED|BS_OWNERDRAW,CRect(0,0,25,25),this,IDC_STOP);
	m_GameNoteView.Create(NULL,NULL,WS_CHILD|WS_CLIPSIBLINGS,CRect(0,0,0,0),this,50,NULL);
	m_GameNoteView.AutoSize();
		
//	m_btStop.EnableWindow(true);
	//移动位置
	m_btLastTurn.SetFont(&CGameImageLink::m_HFont);
	m_btSortCard.SetFont(&CGameImageLink::m_HFont);
	//m_btThing.SetFont(&CGameImageLink::m_HFont);

	//建立客户扑克
	int iCreateIndex[4]={2,1,3,0};
	for (int i=0;i<4;i++)
	{
		m_UserCard[iCreateIndex[i]].Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS,CRect(0,0,0,0),this,20+i,NULL);
		m_UserCard[iCreateIndex[i]].SetShowCard(true);
	}

	///for (int i = 0;i < 3;i++)
	{
		///m_UserBackCard[i].Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS,CRect(0,0,0,0),this,30+i,NULL);
		///m_UserBackCard[i].SetShowCard(true);
	}

	m_MeCard.Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS,CRect(0,0,0,0),this,25,NULL);
	m_MeCard.InitGameCard(GetParent());
	m_MeBackCard.Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS,CRect(0,0,0,0),this,26,NULL);
	m_MeBackCard.InitGameCard(GetParent());
	m_MeBackCard.SetShowCard(false);
	m_MeBackCard.SetUseMouse(false);
	m_MeBackCard.ShowWindow(SW_HIDE);

	//载入资源
	m_btOutCard.SetFont(&CGameImageLink::m_HFont);
	//m_btGiveBack.SetFont(&CGameImageLink::m_HFont);
	m_btContinue.SetFont(&CGameImageLink::m_HFont);

	m_btPass.SetFont(&CGameImageLink::m_HFont);
	m_btnTiShi.SetFont(&CGameImageLink::m_HFont);
	//AfxSetResourceHandle(GetModuleHandle(NULL));


	return 0;
}

void CClientPlayView::FixControlSize(int cx,int cy)
{
	if ((cx==0)||(cy==0)) return;
	CRect m_ClientRect;
	GetClientRect(&m_ClientRect);

	//扑克索引
	POINT ptCardPoint[4];
	//移动坐标
	UINT iMidLine=cy/2;
	UINT iCenLine=cx/2;

	m_PtLogo[0].x=iCenLine-50;
	m_PtLogo[0].y=15+VIEW_FRAME_TOP;
	m_PtName[0].x=m_PtLogo[0].x+40;
	m_PtName[0].y=m_PtLogo[0].y+5;
	m_PtAgree[0].x=m_PtLogo[0].x+45;
	m_PtAgree[0].y=m_PtLogo[0].y+20;

	ptCardPoint[0].x=m_PtLogo[0].x+20;
	ptCardPoint[0].y=m_PtLogo[0].y+50;

	m_PtTime[0].x=m_ClientRect.Width()/2-20 ;
	m_PtTime[0].y=VIEW_FRAME_TOP + 185;


	//	iListState[1]=SW_MODE_RIGHT;


	m_PtLogo[1].x=cx-52;
	m_PtLogo[1].y=iMidLine;
	m_PtName[1].x=cx-50;
	m_PtName[1].y=iMidLine+5;
	m_PtAgree[1].x=cx-70;
	m_PtAgree[1].y=iMidLine+22;

	m_PtTime[1].x=m_ClientRect.Width() -  140;
	m_PtTime[1].y=m_ClientRect.Height()/2;

	ptCardPoint[1].x=cx-80;
	ptCardPoint[1].y=iMidLine-50;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -