?? 8_1view.cpp
字號:
// 8_1View.cpp : implementation of the CMy8_1View class
//
#include "stdafx.h"
#include "8_1.h"
#include "8_1Doc.h"
#include "8_1View.h"
#include "MainFrm.h"
#include "resource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View
IMPLEMENT_DYNCREATE(CMy8_1View, CView)
BEGIN_MESSAGE_MAP(CMy8_1View, CView)
ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CMy8_1View)
ON_COMMAND(ID_MENU_START, OnMenuStart)
ON_WM_TIMER()
ON_WM_KEYDOWN()
ON_COMMAND(ID_MENU_PAUSE, OnMenuPause)
ON_UPDATE_COMMAND_UI(ID_MENU_PAUSE, OnUpdateMenuPause)
ON_COMMAND(ID_VIEW_1, OnView1)
ON_COMMAND(ID_VIEW_2, OnView2)
ON_UPDATE_COMMAND_UI(ID_VIEW_1, OnUpdateView1)
ON_UPDATE_COMMAND_UI(ID_VIEW_2, OnUpdateView2)
ON_COMMAND(ID_MENU_DSTART, OnMenuDstart)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_COMMAND(ID_MENU_TSTART, OnMenuTstart)
ON_COMMAND(ID_NET, OnNet)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View construction/destruction
CMy8_1View::CMy8_1View()
{
// TODO: add construction code here
fenmian.LoadBitmap(IDB_BITMAP1);
for(int i=0;i<4;i++)
xuanze[i].LoadBitmap(IDB_BITMAP7+i);
start=false;
m_bPause=false;
view=1;
player=1;
ixuanze=1;
net=0;//主機是否
}
CMy8_1View::~CMy8_1View()
{
}
BOOL CMy8_1View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View drawing
void CMy8_1View::OnDraw(CDC* pDC)
{
CMy8_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CDC Dc;
if(Dc.CreateCompatibleDC(pDC)==FALSE)
AfxMessageBox("Can't create DC");
//發送消息
///////////////////////////////////////////////
if(player==4)
{
CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;
char msg[10000];
strcpy(msg,"");
int i,j;
if(pFrame->ynserver==1)
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(russia2.Will[i][j]==0)
strcat(msg,"0");
else
strcat(msg,"1");
}
for(i=0;i<russia2.m_RowCount;i++)
for(j=0;j<russia2.m_ColCount;j++)
{
if(russia2.Russia[i][j]==0)
strcat(msg,"0");
else
strcat(msg,"1");
}
char mm[1];
itoa(russia2.m_Level,mm,10);
strcat(msg,mm);
itoa(russia2.m_Speed,mm,10);
strcat(msg,mm);
char mmm[5];
itoa(russia2.m_Score,mmm,10);
strcat(msg,mmm);
char pMsg[10000];
sprintf(pMsg,"%s",msg);
CMy8_1App *App=( CMy8_1App * )AfxGetApp();
if(App->pRequestSave!=NULL)
pFrame->SendMsg(App->pRequestSave,pMsg);
}
if(pFrame->ynserver==2)
if(pFrame->m_pSocket)
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(russia.Will[i][j]==0)
strcat(msg,"0");
else
strcat(msg,"1");
}
for(i=0;i<russia.m_RowCount;i++)
for(j=0;j<russia.m_ColCount;j++)
{
if(russia.Russia[i][j]==0)
strcat(msg,"0");
else
strcat(msg,"1");
}
char mm[1];
itoa(russia.m_Level,mm,10);
strcat(msg,mm);
itoa(russia.m_Speed,mm,10);
strcat(msg,mm);
char mmm[5];
itoa(russia.m_Score,mmm,10);
strcat(msg,mmm);
char pMsg[10000];
sprintf(pMsg,"%s",msg);
CMy8_1App *App=( CMy8_1App * )AfxGetApp();
pFrame->SendMsg(pFrame->m_pSocket,pMsg);
}
////////////////////////////////////////////////
//接收消息
CMy8_1App *App=( CMy8_1App * )AfxGetApp();
// char msg[10000];
strcpy(msg,App->str);
int k=0;
char m[1];
if( (pFrame->ynserver==1)&&(App->pRequestSave!=NULL))
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
m[0]=msg[k];
int a=atoi(m);
if(a==0)
{
russia.Will[i][j]=0;
k++;
}
else
{
russia.Will[i][j]=1;
k++;
}
}
for(i=0;i<18;i++)//russia.m_RowCount
for(j=0;j<12;j++)//russia.m_ColCount
{
m[0]=msg[k];
int a=atoi(m);
if(a==0)
{
russia.Russia[i][j]=0;
k++;
}
else
{
russia.Russia[i][j]=1;
k++;
}
}
m[0]=msg[k];
int a=atoi(m);
russia.m_Level=a;
k++;
m[0]=msg[k];
a=atoi(m);
russia.m_Speed=a;
k++;
m[0]=msg[k];
a=atoi(m);
russia.m_Score=a;
}
if(pFrame->ynserver==2)
{
k=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
m[0]=msg[k];
int a=atoi(m);
if(a==0)
{
russia2.Will[i][j]=0;
k++;
}
else
{
russia2.Will[i][j]=1;
k++;
}
}
for(i=0;i<18;i++)
for(j=0;j<12;j++)
{
m[0]=msg[k];
int a=atoi(m);
if(a==0)
{
russia2.Russia[i][j]=0;
k++;
}
else
{
russia2.Russia[i][j]=1;
k++;
}
}
m[0]=msg[k];
int a=atoi(m);
russia2.m_Level=a;
k++;
m[0]=msg[k];
a=atoi(m);
russia2.m_Speed=a;
k++;
m[0]=msg[k];
a=atoi(m);
russia2.m_Score=a;
}
}
//沒有開始,顯示封面
if( !start)
{
Dc.SelectObject(fenmian);
pDC->BitBlt(0,0,500,550,&Dc,0,0,SRCCOPY);
Dc.SelectObject(xuanze[ixuanze-1]);
pDC->BitBlt(200,350,150,150,&Dc,0,0,SRCCOPY);
}
//顯示背景
else
{
if(view==1)
{
if(player==1)
russia.DrawJiemian1(0,0,pDC);
if(player==2||player==4)
{
russia.DrawJiemian1(500,0,pDC);
russia2.DrawJiemian1(0,0,pDC);
}
}
if(view==2)
{
if(player==1)
russia.DrawJiemian2(0,0,pDC);
if(player==2||player==4)
{
russia.DrawJiemian2(253,0,pDC);
russia2.DrawJiemian2(0,0,pDC);
}
}
if(player==3)
russia0.DrawJiemian(pDC);
}
}
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View printing
BOOL CMy8_1View::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CMy8_1View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CMy8_1View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View diagnostics
#ifdef _DEBUG
void CMy8_1View::AssertValid() const
{
CView::AssertValid();
}
void CMy8_1View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CMy8_1Doc* CMy8_1View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMy8_1Doc)));
return (CMy8_1Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMy8_1View message handlers
void CMy8_1View::OnView2()
{
// TODO: Add your command handler code here
if(player==3)return;
view=2;
if(!start)
return;
//調整窗口大小
if(player==1)
AfxGetMainWnd() ->SetWindowPos(NULL,0,0,253,510,SWP_NOMOVE|SWP_NOZORDER );
if(player==2||player==4)
AfxGetMainWnd() ->SetWindowPos(NULL,0,0,510,510,SWP_NOMOVE|SWP_NOZORDER );
}
void CMy8_1View::OnView1()
{
// TODO: Add your command handler code here
if(player==3)return;
view=1;
//調整窗口大小
if(player==1)
AfxGetMainWnd() ->SetWindowPos(NULL,0,0,500,590,SWP_NOMOVE|SWP_NOZORDER );
if((player==2)||(player==4))
AfxGetMainWnd() ->SetWindowPos(NULL,0,0,1000,590,SWP_NOMOVE|SWP_NOZORDER );
}
void CMy8_1View::OnUpdateView1(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(view==1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -