//绘画界面 void CGameClientView::DrawGameView(CDC * pDC, int nWidth, int nHeight) { //地震效果 if(m_bFalsh) { CImageHandle ImageHandleBack(&m_ImageViewBack); int xValue=rand()%ROCK; int yValue=rand()%ROCK; if(xValue%2==0)xValue*=(-1); if(yValue%2==0)yValue*=(-1); m_ImageViewBack.AlphaDrawImage(pDC,(nWidth/2-512)+xValue,(nHeight/2-397)+yValue, m_ImageViewBack.GetWidth(),m_ImageViewBack.GetHeight(),0,0,RGB(255,0,255)); } else { CImageHandle ImageHandleBack(&m_ImageViewBack); m_ImageViewBack.AlphaDrawImage(pDC,(nWidth/2-512+6),(nHeight/2-383), m_ImageViewBack.GetWidth(),m_ImageViewBack.GetHeight(),0,0,RGB(255,0,255)); //绘画背景 //DrawViewImage(pDC,m_ImageViewCenter,enMode_Spread);//用于最大化窗口 //DrawViewImage(pDC,m_ImageViewBack,enMode_Centent); } if(!m_bStopDraw) { //绘画用户 for (WORD i=0;i<GAME_PLAYER;i++) { //变量定义 WORD wUserTimer=GetUserTimer(i); const tagUserData * pUserData=GetUserInfo(i); #ifdef _DEBUG ////测试代码 //tagUserData Obj; //Obj.cbGender = 1; //_sntprintf(Obj.szName,sizeof(Obj.szName),TEXT("用户的名字")); //Obj.cbUserStatus=US_READY; ////Obj.wFaceID = 2; //pUserData = &Obj; ////庄家标志 //CImageHandle ImageHandleBanker(&m_ImageBanker); //m_ImageBanker.AlphaDrawImage(pDC,m_PointBanker[i].x,m_PointBanker[i].y,m_ImageBanker.GetWidth(),m_ImageBanker.GetHeight(),0,0,RGB(255,0,255)); #endif //绘画用户 if (pUserData!=NULL) { //用户名字 pDC->SetTextAlign(TA_CENTER); pDC->SetTextColor((wUserTimer>0)?RGB(250,250,250):RGB(220,220,220)); DrawTextString(pDC,pUserData->szName,RGB(255,255,255),RGB(0,0,0),m_ptFace[i].x+15,m_ptFace[i].y+35); //用户金币 TCHAR szBuffer[64]=TEXT(""); LONG lLeaveScore=pUserData->lScore-((m_ScoreView.IsWindowVisible()==TRUE)?(0):(m_lTableScore[i]));//; if(m_lStopUpdataScore[i]>0)lLeaveScore=m_lStopUpdataScore[i]-m_lTableScore[i]; _snprintf(szBuffer,sizeof(szBuffer),TEXT("¥%ld"),lLeaveScore); DrawTextString(pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),m_ptFace[i].x+10,m_ptFace[i].y+48); //其他信息 //wUserTimer =1; if (wUserTimer!=0) { if(m_CardControl[MY_SELF_CHAIRID].GetCardCount()==0) DrawUserTimer(pDC,m_ptFace[i].x+m_nXFace/2,m_ptTimer[i].y+90,wUserTimer); else DrawUserTimer(pDC,m_ptTimer[i].x,m_ptTimer[i].y,wUserTimer); } //准备标志 if (pUserData->cbUserStatus==US_READY) { DrawUserReady(pDC,m_ptReady[i].x,m_ptReady[i].y); } DrawUserFace(pDC,pUserData,m_ptFace[i].x,m_ptFace[i].y,pUserData->cbUserStatus==US_OFFLINE); } } //计算总注 LONG lTableScore=0L; for (WORD i=0;i<GAME_PLAYER;i++) lTableScore+=m_lTableScore[i]; //总注信息 if (lTableScore>0L) { CImageHandle ImageHandle3(&m_ImageNumber); int iCount=0; LONG lCell[11]; ZeroMemory(lCell,sizeof(lCell)); while(lTableScore>0L) { LONG lScore=lTableScore%10; lCell[iCount++] = lScore; lTableScore=lTableScore/10; } int iTemp=0; int iX=m_ImageNumber.GetWidth(); for (int i=iCount-1;i>=0;i--) { m_ImageNumber.AlphaDrawImage(pDC,nWidth/2+39+(iX/10)*(iTemp++),nHeight/2-296, iX/10,m_ImageNumber.GetHeight(),iX/10*lCell[i],0,RGB(255,0,255)); } } //庄家信息 if (m_wBankerUser!=INVALID_CHAIR) { //庄家标志 CImageHandle ImageHandleBanker(&m_ImageBanker); m_ImageBanker.AlphaDrawImage(pDC,m_PointBanker[m_wBankerUser].x,m_PointBanker[m_wBankerUser].y,m_ImageBanker.GetWidth(),m_ImageBanker.GetHeight(),0,0,RGB(255,0,255)); } //不存在个数 for (BYTE i=0;i<GAME_PLAYER;i++) { //绘画判断 //m_lCurrentScore[i] = 100000; if (m_lCurrentScore[i]==0L) continue; LONG lTemp=m_lCurrentScore[i]; LONG lTimes[]={10,20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000,200000,500000}; for (BYTE k=CountArray(lTimes)-1;;k--) { if(lTemp>=lTimes[k]) { //绘画信息 tagGoldMes tagTemp; tagTemp.lDrawCount = (lTemp/lTimes[k]); tagTemp.lGoldType = k; m_lDrawGold[i].Add(tagTemp); while((tagTemp.lDrawCount--)>0) { //随机位置 int xTemp=rand(); int yTemp=rand(); int bRandX=nWidth/2-25+xTemp%60*((xTemp%2==0)?1:(-1)); int bRandY=nHeight/2-70+yTemp%60*((yTemp%2==0)?1:(-1)); //保存随机位置 CPoint ptTemp; ptTemp.SetPoint(bRandX,bRandY); m_ptKeepJeton[i].Add(ptTemp); } lTemp%=lTimes[k]; if(lTemp==0)break; } } m_lCurrentScore[i]=0L; } //绘画筹码 for (BYTE i=0;i<GAME_PLAYER;i++) { //m_lTableScore[i] = 100000; if (m_lTableScore[i]==0L ) continue; CImageHandle HandleJeton(&m_ImageJeton); //固定位置输出 int Count=0; for(int j=0;j<(m_lDrawGold[i].GetCount());j++) { LONG lDrawCount = m_lDrawGold[i].GetAt(j).lDrawCount; while((lDrawCount--)>0) { CPoint cpTemp=m_ptKeepJeton[i].GetAt(Count++); m_ImageJeton.AlphaDrawImage(pDC,cpTemp.x,cpTemp.y,m_ImageJeton.GetWidth()/15, m_ImageJeton.GetHeight(),m_ImageJeton.GetWidth()/15*(m_lDrawGold[i].GetAt(j).lGoldType),0,RGB(255,0,255)); if(Count==100)break; } if(Count==100)break; } //绘画数目 TCHAR szBuffer[64]; _snprintf(szBuffer,CountArray(szBuffer),TEXT("$:%ld"),m_lTableScore[i]); //计算位置 CRect rcDrawRect; rcDrawRect.top=m_CardControl[i].GetCardPos().y; rcDrawRect.left=m_CardControl[i].GetCardPos().x+((i>2)?(135):(-50)); rcDrawRect.right=rcDrawRect.left+30; rcDrawRect.bottom=rcDrawRect.top+12; //创建字体 CFont ViewFont; ViewFont.CreateFont(-14,0,0,0,700,0,0,0,134,3,2,1,2,TEXT("宋体")); //设置字体 CFont * pOldFont=pDC->SelectObject(&ViewFont); //绘画数目 pDC->SetTextAlign(TA_LEFT); pDC->SetTextColor(RGB(250,200,40)); pDC->DrawText(szBuffer,lstrlen(szBuffer),&rcDrawRect,DT_CENTER|DT_VCENTER|DT_NOCLIP|DT_SINGLELINE); //清理字体 pDC->SelectObject(pOldFont); } //绘画信息 if(m_lCellScore>0) { //创建字体 CFont ViewFont; ViewFont.CreateFont(-12,0,0,0,700,0,0,0,134,3,2,1,2,TEXT("宋体")); //设置字体 CFont * pOldFont=pDC->SelectObject(&ViewFont); pDC->SetTextAlign(TA_LEFT); pDC->SetTextColor(RGB(0,0,0)); //计算位置 CRect rcDrawRect; //绘画数目 TCHAR szBuffer[64]; _snprintf(szBuffer,CountArray(szBuffer),TEXT("封顶:%ld"),m_lMaxCellScore); rcDrawRect.top=nHeight/2-338; rcDrawRect.left=nWidth/2-233; rcDrawRect.right=rcDrawRect.left+50; rcDrawRect.bottom=rcDrawRect.top+12; pDC->DrawText(szBuffer,lstrlen(szBuffer),&rcDrawRect,DT_CENTER|DT_VCENTER|DT_NOCLIP|DT_SINGLELINE); _snprintf(szBuffer,CountArray(szBuffer),TEXT("单注:%ld"),m_lCellScore); rcDrawRect.top=nHeight/2-318; rcDrawRect.left=nWidth/2-230; rcDrawRect.right=rcDrawRect.left+50; rcDrawRect.bottom=rcDrawRect.top+12; pDC->DrawText(szBuffer,lstrlen(szBuffer),&rcDrawRect,DT_CENTER|DT_VCENTER|DT_NOCLIP|DT_SINGLELINE); //清理字体 pDC->SelectObject(pOldFont); } //选比标志 if(m_bCompareCard) { for (int i=0;i<GAME_PLAYER;i++) { if(m_bCompareUser[i]==TRUE) { CPoint cPost=m_CardControl[i].GetCardPos(); CImageHandle ImageArrowhead(&m_ImageArrowhead); m_ImageArrowhead.AlphaDrawImage(pDC,cPost.x,cPost.y-m_ImageArrowhead.GetHeight(), m_ImageArrowhead.GetWidth(),m_ImageArrowhead.GetHeight(),0,0,RGB(255,0,255)); } } } } //发牌绘画 if (m_SendCardItemArray.GetCount()>0) { //变量定义 CImageHandle HandleCard(&m_ImageCard); tagSendCardItem * pSendCardItem=&m_SendCardItemArray[0]; //获取大小 int nItemWidth=m_ImageCard.GetWidth()/13; int nItemHeight=m_ImageCard.GetHeight()/5; //绘画扑克 int nXPos=m_SendCardPos.x-nItemWidth/2; int nYPos=m_SendCardPos.y-nItemHeight/2+10; m_ImageCard.AlphaDrawImage(pDC,nXPos,nYPos,nItemWidth,nItemHeight,nItemWidth*2,nItemHeight*4,RGB(255,0,255)); } //比牌扑克 if (m_wLoserUser!=INVALID_CHAIR) { //送牌状态 if (m_wConmareIndex<m_wConmareCount) { //绘画扑克 for (BYTE i=0;i<2;i++) { //变量定义 CPoint PointCard; CPoint PointStart=m_ptUserCard[m_wCompareChairID[i]]; //计算位置 INT nQuotiety=(i==0)?-1:1; PointCard.y=PointStart.y+(m_ptUserCompare.y-PointStart.y)*m_wConmareIndex/m_wConmareCount; PointCard.x=PointStart.x+(m_ptUserCompare.x-PointStart.x+COMPARE_RADII*nQuotiety)*m_wConmareIndex/m_wConmareCount; //绘画扑克 DrawCompareCard(pDC,PointCard.x,PointCard.y,false); } } //比牌状态 if ((m_wConmareIndex>=m_wConmareCount)&&((m_wConmareIndex<m_wConmareCount+VSCARD_COUNT*VSCARD_TIME))) { //绘画扑克 for (BYTE i=0;i<2;i++) { //变量定义 CPoint PointCard; CPoint PointStart=m_ptUserCard[m_wCompareChairID[i]]; //计算位置 INT nQuotiety=(i==0)?-1:1; PointCard.y=m_ptUserCompare.y; PointCard.x=m_ptUserCompare.x+COMPARE_RADII*nQuotiety; //绘画扑克 DrawCompareCard(pDC,PointCard.x,PointCard.y,false); } //比牌标志 CSize SizeVSCard; CPngImage ImageVSCard; ImageVSCard.LoadImage(AfxGetInstanceHandle(),TEXT("VS_CARD")); SizeVSCard.SetSize(ImageVSCard.GetWidth()/VSCARD_COUNT,ImageVSCard.GetHeight()); //绘画标志 INT nImageIndex=(m_wConmareIndex-m_wConmareCount)%VSCARD_COUNT; ImageVSCard.DrawImage(pDC,m_ptUserCompare.x-SizeVSCard.cx/2,m_ptUserCompare.y-SizeVSCard.cy/2, SizeVSCard.cx,SizeVSCard.cy,nImageIndex*SizeVSCard.cx,0); //声音效果 CGameClientDlg * pGameClientDlg=CONTAINING_RECORD(this,CGameClientDlg,m_GameClientView); pGameClientDlg->PlayGameSound(AfxGetInstanceHandle(),TEXT("COMPARE_CARD")); } //回牌状态 if (m_wConmareIndex>=m_wConmareCount+VSCARD_COUNT*VSCARD_TIME) { //变量定义 WORD wConmareIndex=m_wConmareIndex-m_wConmareCount-VSCARD_COUNT*VSCARD_TIME; //绘画扑克 for (BYTE i=0;i<2;i++) { //变量定义 CPoint PointCard; CPoint PointStart=m_ptUserCard[m_wCompareChairID[i]]; //计算位置 INT nQuotiety=(i==0)?-1:1; PointCard.y=m_ptUserCompare.y+(PointStart.y-m_ptUserCompare.y)*wConmareIndex/m_wConmareCount; PointCard.x=m_ptUserCompare.x+COMPARE_RADII*nQuotiety+(PointStart.x-m_ptUserCompare.x-COMPARE_RADII*nQuotiety)*wConmareIndex/m_wConmareCount; //绘画扑克 DrawCompareCard(pDC,PointCard.x,PointCard.y,(m_wLoserUser==m_wCompareChairID[i])?true:false); } //声音效果 if(m_wConmareIndex==m_wConmareCount+VSCARD_COUNT*VSCARD_TIME) { CGameClientDlg * pGameClientDlg=CONTAINING_RECORD(this,CGameClientDlg,m_GameClientView); pGameClientDlg->PlayGameSound(AfxGetInstanceHandle(),TEXT("CENTER_SEND_CARD")); } } } //等待选择 if(m_wWaitUserChoice!=INVALID_CHAIR) { TCHAR szBuffer[64]=TEXT(""); //创建字体 CFont ViewFont; ViewFont.CreateFont(-15,0,0,0,700,0,0,0,134,3,2,1,2,TEXT("宋体")); //设置字体 CFont * pOldFont=pDC->SelectObject(&ViewFont); pDC->SetTextAlign(TA_CENTER); //输出信息 if(m_wWaitUserChoice==TRUE)_sntprintf(szBuffer,sizeof(szBuffer),TEXT("等待玩家选择比牌")); else _sntprintf(szBuffer,sizeof(szBuffer),TEXT("请选择玩家进行比牌")); DrawTextString(pDC,szBuffer,RGB(50,50,50),RGB(0,170,0),nWidth/2+10,nHeight/2+45); //清理字体 pDC->SelectObject(pOldFont); } return; }
//调整控件 void CGameClientView::RectifyGameView(int nWidth, int nHeight) { CImageHandle ImageHandleBanker(&m_ImageBanker); //发牌位置 m_SendStartPos.SetPoint(nWidth/2,nHeight/2-30); m_ptFace[0].x=nWidth/2-m_nXFace/2; m_ptFace[0].y=nHeight/2-351; m_ptFace[2].x=nWidth/2-m_nXFace/2; m_ptFace[2].y=nHeight/2+352-m_nYFace; m_ptFace[1].x=nWidth/2+341; m_ptFace[1].y=nHeight/2-m_nYFace; m_ptFace[3].x=nWidth/2-373; m_ptFace[3].y=nHeight/2-m_nYFace; m_ptName[0].x=nWidth/2+21; m_ptName[0].y=nHeight/2-345; m_ptName[2].x=nWidth/2+21; m_ptName[2].y=nHeight/2+325; m_ptName[1].x=nWidth/2+183+155; m_ptName[1].y=nHeight/2-m_nYFace+8; m_ptName[3].x=nWidth/2-183-155; m_ptName[3].y=nHeight/2-m_nYFace+8; m_ptTimer[0].x=m_ptFace[0].x-m_nXTimer/2-5; m_ptTimer[0].y=nHeight/2-327; m_ptTimer[2].x=m_ptFace[2].x-m_nXTimer/2-5; m_ptTimer[2].y=nHeight/2+352-m_nYTimer/2; m_ptTimer[1].x=nWidth/2+188+164; m_ptTimer[1].y=nHeight/2-m_nYFace-m_nYTimer+20; m_ptTimer[3].x=nWidth/2-220-131; m_ptTimer[3].y=nHeight/2-m_nYFace+20-m_nYTimer; m_ptReady[0].x=nWidth/2-120; m_ptReady[0].y=nHeight/2-361; m_ptReady[2].x=nWidth/2-120; m_ptReady[2].y=nHeight/2+301; m_ptReady[1].x=nWidth/2+205+125; m_ptReady[1].y=nHeight/2-m_nYFace-m_nYTimer/2-5; m_ptReady[3].x=nWidth/2-205-125; m_ptReady[3].y=nHeight/2-m_nYFace-m_nYTimer/2-5; //调整坐标 for(BYTE i=0;i<GAME_PLAYER;i++) { m_PointBanker[i].x=m_ptTimer[i].x-m_nXTimer/2; m_PointBanker[i].y=m_ptTimer[i].y-m_nYTimer/2; } m_PointBanker[1].x+=6; m_PointBanker[3].x+=2; m_PointBanker[2].y+=9; m_PointBanker[0].x +=160; m_PointBanker[2].x +=160; m_PointBanker[1].y +=120; m_PointBanker[3].y +=120; m_ptJeton[0].x=nWidth/2-32; m_ptJeton[0].y=nHeight/2-153; m_ptJeton[2].x=nWidth/2-32; m_ptJeton[2].y=nHeight/2+74; m_ptJeton[1].x=nWidth/2+52; m_ptJeton[1].y=nHeight/2-49; m_ptJeton[3].x=nWidth/2-116; m_ptJeton[3].y=nHeight/2-49; //用户扑克; m_CardControl[0].SetBenchmarkPos(nWidth/2,nHeight/2-290,enXCenter,enYTop); m_CardControlOx[0].SetBenchmarkPos(nWidth/2,nHeight/2-320,enXCenter,enYTop); m_CardControl[2].SetBenchmarkPos(nWidth/2,nHeight/2+270,enXCenter,enYBottom); m_CardControlOx[2].SetBenchmarkPos(nWidth/2,nHeight/2+240,enXCenter,enYBottom); m_CardControl[1].SetBenchmarkPos(nWidth/2+293,nHeight/2-30,enXRight,enYCenter); m_CardControlOx[1].SetBenchmarkPos(nWidth/2+283,nHeight/2-60,enXRight,enYCenter); m_CardControl[3].SetBenchmarkPos(nWidth/2-293,nHeight/2-30,enXLeft,enYCenter); m_CardControlOx[3].SetBenchmarkPos(nWidth/2-283,nHeight/2-60,enXLeft,enYCenter); //结束位置 m_SendEndingPos[0].x=m_CardControl[0].GetCardPos().x; m_SendEndingPos[0].y=m_CardControl[0].GetCardPos().y; m_SendEndingPos[1].x=m_CardControl[1].GetCardPos().x; m_SendEndingPos[1].y=m_CardControl[1].GetCardPos().y; m_SendEndingPos[2].x=m_CardControl[2].GetCardPos().x; m_SendEndingPos[2].y=m_CardControl[2].GetCardPos().y; m_SendEndingPos[3].x=m_CardControl[3].GetCardPos().x; m_SendEndingPos[3].y=m_CardControl[3].GetCardPos().y; //牛值位置 m_ptValue[0].x=nWidth/2-138; m_ptValue[0].y=nHeight/2-250; m_ptValue[1].x=nWidth/2+200; m_ptValue[1].y=nHeight/2+30; m_ptValue[2].x=nWidth/2-138; m_ptValue[2].y=nWidth/2+158; m_ptValue[3].x=nWidth/2-280; m_ptValue[3].y=nHeight/2+30; //按钮控件 CRect rcButton; HDWP hDwp=BeginDeferWindowPos(32); const UINT uFlags=SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS|SWP_NOSIZE; //开始按钮 m_btStart.GetWindowRect(&rcButton); DeferWindowPos(hDwp,m_btStart,NULL,nWidth/2-32,nHeight/2+112,0,0,uFlags); // DeferWindowPos(hDwp,m_btBegin,NULL,nWidth/2-32,nHeight/2+112,0,0,uFlags); //控制按钮 m_btReSort.GetWindowRect(&rcButton); DeferWindowPos(hDwp,m_btReSort,NULL,nWidth/2-32,nHeight/2+112,0,0,uFlags); DeferWindowPos(hDwp,m_btOpenCard,NULL,nWidth/2+25,nHeight/2+112,0,0,uFlags); DeferWindowPos(hDwp,m_btOx,NULL,nWidth/2-118,nHeight/2+112,0,0,uFlags); DeferWindowPos(hDwp,m_btHintOx,NULL,nWidth/2-88,nHeight/2+112,0,0,uFlags); //辅助按钮 DeferWindowPos(hDwp,m_btShortcut,NULL,nWidth/2+330,nHeight/2+320,0,0,uFlags); //筹码按钮 INT nPos = 20; DeferWindowPos(hDwp,m_btOneScore,NULL,nWidth/2-151-nPos*2,nHeight/2+163,0,0,uFlags); DeferWindowPos(hDwp,m_btTwoScore,NULL,nWidth/2-67-nPos+5,nHeight/2+163,0,0,uFlags); DeferWindowPos(hDwp,m_btThreeScore,NULL,nWidth/2+15+nPos-5,nHeight/2+163,0,0,uFlags); DeferWindowPos(hDwp,m_btFourScore,NULL,nWidth/2+98+nPos*2,nHeight/2+163,0,0,uFlags); //选庄按钮 DeferWindowPos(hDwp,m_btBanker,NULL,nWidth/2-76,nHeight/2+151,0,0,uFlags); DeferWindowPos(hDwp,m_btIdler,NULL,nWidth/2+14,nHeight/2+151,0,0,uFlags); #ifdef VIDEO_GAME //视频窗口 DeferWindowPos(hDwp,m_DlgVideoService[0],NULL,nWidth/2-162,nHeight/2-350,0,0,uFlags|SWP_NOSIZE); DeferWindowPos(hDwp,m_DlgVideoService[1],NULL,nWidth/2+287,nHeight/2-172,0,0,uFlags|SWP_NOSIZE); DeferWindowPos(hDwp,m_DlgVideoService[2],NULL,nWidth/2-290,nHeight/2+195,0,0,uFlags|SWP_NOSIZE); DeferWindowPos(hDwp,m_DlgVideoService[3],NULL,nWidth/2-375,nHeight/2-192,0,0,uFlags|SWP_NOSIZE); #endif //结束移动 EndDeferWindowPos(hDwp); //加注窗口 //m_GoldControl.SetBasicPoint(nWidth-80-m_nXBorder-120,nHeight-109-m_nYBorder); //积分视图 CRect rcControl; m_ScoreView.GetWindowRect(&rcControl); m_ScoreView.SetWindowPos(NULL,nWidth/2-183,nHeight/2-153,0,0,SWP_NOZORDER|SWP_NOSIZE); //调整动画 SetFlowerControlInfo(3,m_ptFace[3].x,nHeight/2-BIG_FACE_HEIGHT/2); SetFlowerControlInfo(1,m_ptFace[1].x-BIG_FACE_HEIGHT/2,nHeight/2-BIG_FACE_HEIGHT/2); SetFlowerControlInfo(0,nWidth/2-BIG_FACE_WIDTH/2,m_ptFace[0].y ,BIG_FACE_WIDTH, BIG_FACE_HEIGHT, 30); SetFlowerControlInfo(2,nWidth/2-BIG_FACE_WIDTH/2,m_ptFace[2].y-80 ,BIG_FACE_WIDTH, BIG_FACE_HEIGHT, 30); return; }
//调整控件 void CGameClientView::RectifyGameView(int nWidth, int nHeight) { CImageHandle ImageHandleBanker(&m_ImageBanker); //WORD w=0; //for(WORD i=0;i<GAME_PLAYER;i++) //{ // if(顺时针) // { // if(i==0)w=... // } //... //调整坐标 m_ptFace[0].x=nWidth/2+250; m_ptFace[0].y=nHeight/2-261; m_ptFace[1].x=nWidth/2+250; m_ptFace[1].y=nHeight/2-m_nYFace-10; m_ptFace[2].x=nWidth/2-10; m_ptFace[2].y=nHeight/2+204; m_ptFace[3].x=nWidth/2-275; m_ptFace[3].y=nHeight/2-m_nYFace-10; m_ptFace[4].x=nWidth/2-275; m_ptFace[4].y=nHeight/2-261; //时间位置 m_ptTimer[0].x=nWidth/2+185; m_ptTimer[0].y=nHeight/2-230; m_ptTimer[1].x=nWidth/2+185; m_ptTimer[1].y=nHeight/2-15; m_ptTimer[2].x=nWidth/2+10; m_ptTimer[2].y=nHeight/2+86; m_ptTimer[3].x=nWidth/2-190; m_ptTimer[3].y=nHeight/2-15; m_ptTimer[4].x=nWidth/2-190; m_ptTimer[4].y=nHeight/2-230; //准备位置 m_ptReady[0].x=nWidth/2+185; m_ptReady[0].y=nHeight/2-230; m_ptReady[1].x=nWidth/2+185; m_ptReady[1].y=nHeight/2-15; m_ptReady[2].x=nWidth/2+10; m_ptReady[2].y=nHeight/2+86; m_ptReady[3].x=nWidth/2-185; m_ptReady[3].y=nHeight/2-15; m_ptReady[4].x=nWidth/2-185; m_ptReady[4].y=nHeight/2-230; //用户扑克 m_CardControl[0].SetBenchmarkPos(nWidth/2+245,nHeight/2-150,enXCenter,enYCenter); m_CardControl[1].SetBenchmarkPos(nWidth/2+245,nHeight/2+69,enXCenter,enYCenter); m_CardControl[2].SetBenchmarkPos(nWidth/2+10,nHeight/2+203,enXCenter,enYBottom); m_CardControl[3].SetBenchmarkPos(nWidth/2-245,nHeight/2+69,enXCenter,enYCenter); m_CardControl[4].SetBenchmarkPos(nWidth/2-245,nHeight/2-150,enXCenter,enYCenter); //庄家标志 m_PointBanker[0].x=m_ptFace[0].x+45; m_PointBanker[0].y=m_ptFace[0].y+5; m_PointBanker[1].x=m_ptFace[1].x+45; m_PointBanker[1].y=m_ptFace[1].y+5; m_PointBanker[2].x=m_ptFace[2].x+45; m_PointBanker[2].y=m_ptFace[2].y+10; m_PointBanker[3].x=m_ptFace[3].x-55; m_PointBanker[3].y=m_ptFace[3].y+5; m_PointBanker[4].x=m_ptFace[4].x-55; m_PointBanker[4].y=m_ptFace[4].y+5; //名字位置 //m_ptName[0].x=nWidth/2+5+m_nXFace/2+50; //m_ptName[0].y=5+m_nYBorder+5; //m_ptName[1].x=nWidth-m_nXBorder-m_nXFace-10-30; //m_ptName[1].y=nHeight/2-m_nYFace+3; //m_ptName[2].x=nWidth/2+5+m_nXFace/2+50; //m_ptName[2].y=nHeight-m_nYBorder-m_nYFace-2-25; //m_ptName[3].x=m_nXBorder+m_nXFace+10+75; //m_ptName[3].y=nHeight/2-m_nYFace+3+130; //m_ptName[4].x=m_nXBorder+m_nXFace+10+75; //m_ptName[4].y=nHeight/2-m_nYFace+3-110; //筹码位置 m_ptJeton[0].x=m_ptFace[0].x+50; m_ptJeton[0].y=m_PointBanker[0].y+210+15; m_ptJeton[1].x=m_PointBanker[1].x-60-30; m_ptJeton[1].y=m_ptFace[1].y+13; m_ptJeton[2].x=m_ptFace[0].x+50; m_ptJeton[2].y=m_PointBanker[2].y-210-30; m_ptJeton[3].x=m_PointBanker[3].x+130+75; m_ptJeton[3].y=m_ptFace[1].y+13+130; m_ptJeton[4].x=m_PointBanker[3].x+130+75; m_ptJeton[4].y=m_ptFace[1].y+13-110; m_ptUserCard[0].x=m_CardControl[0].GetCardPos().x; m_ptUserCard[0].y=m_CardControl[0].GetCardPos().y; m_ptUserCard[1].x=m_CardControl[1].GetCardPos().x-40; m_ptUserCard[1].y=m_CardControl[1].GetCardPos().y+60; m_ptUserCard[2].x=m_CardControl[2].GetCardPos().x; m_ptUserCard[2].y=m_CardControl[2].GetCardPos().y-20; m_ptUserCard[3].x=m_CardControl[3].GetCardPos().x+40; m_ptUserCard[3].y=m_CardControl[3].GetCardPos().y+39; m_ptUserCard[4].x=m_CardControl[4].GetCardPos().x+80; m_ptUserCard[4].y=m_CardControl[4].GetCardPos().y+20; //按钮控件 CRect rcButton; HDWP hDwp=BeginDeferWindowPos(32); const UINT uFlags=SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS|SWP_NOSIZE; //开始按钮 m_btStart.GetWindowRect(&rcButton); DeferWindowPos(hDwp,m_btStart,NULL,nWidth/2+53,nHeight/2+258,0,0,uFlags); //控制按钮 m_btAddScore.GetWindowRect(&rcButton); //INT n = m_nYBorder; DeferWindowPos(hDwp,m_btAddScore,NULL,nWidth/2+22,nHeight/2+281,0,0,uFlags); DeferWindowPos(hDwp,m_btFollow,NULL,nWidth/2+95,nHeight/2+268,0,0,uFlags); DeferWindowPos(hDwp,m_btLookCard,NULL,nWidth/2+165,nHeight/2+244,0,0,uFlags); DeferWindowPos(hDwp,m_btGiveUp,NULL,nWidth/2+284,nHeight/2+156,0,0,uFlags); DeferWindowPos(hDwp,m_btCompareCard,NULL,nWidth/2+229,nHeight/2+204,0,0,uFlags); DeferWindowPos(hDwp,m_btOpenCard,NULL,nWidth/2+229,nHeight/2+204,0,0,uFlags); //动画位置 m_ptUserCompare.SetPoint(nWidth/2,nHeight*2/5); int iX=nWidth/2+80; int iY=nHeight/2+200; m_btMaxScore.GetWindowRect(&rcButton); DeferWindowPos(hDwp,m_btMinScore,NULL,iX+140,iY+3,0,0,uFlags); DeferWindowPos(hDwp,m_btMaxScore,NULL,iX+20,iY+80,0,0,uFlags); DeferWindowPos(hDwp,m_btCancel,NULL,iX+73,iY+80,0,0,uFlags); DeferWindowPos(hDwp,m_btConfirm,NULL,iX+125,iY+80,0,0,uFlags); //结束移动 EndDeferWindowPos(hDwp); //加注窗口 m_GoldControl.SetBasicPoint(iX,iY); //积分视图 CRect rcControl; m_ScoreView.GetWindowRect(&rcControl); m_ScoreView.SetWindowPos(NULL,(nWidth-rcControl.Width())/2,nHeight/2-190,0,0,SWP_NOZORDER|SWP_NOSIZE); return; }