📄 clientview.cpp
字号:
#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 + -