📄 vwumpusdlg.cpp
字号:
// vwumpusDlg.cpp : implementation file
//
#include "stdafx.h"
#include "vwumpus.h"
#include "vwumpusDlg.h"
#include "wumpus.h"
Hero hero;
CString HeroInfo="欢迎来到巫魔世界!\r\n";
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVwumpusDlg dialog
CVwumpusDlg::CVwumpusDlg(CWnd* pParent /*=NULL*/)
: CDialog(CVwumpusDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CVwumpusDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CVwumpusDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVwumpusDlg)
DDX_Control(pDX, IDC_BUTTON3, m_nNext);
DDX_Control(pDX, IDC_RANDMAP, m_nRandMap);
DDX_Control(pDX, IDC_ONCEAGAIN, m_nOnceAgain);
DDX_Control(pDX, IDC_GAME, m_nGame);
DDX_Control(pDX, IDC_GRID9, grid9);
DDX_Control(pDX, IDC_GRID8, grid8);
DDX_Control(pDX, IDC_GRID7, grid7);
DDX_Control(pDX, IDC_GRID6, grid6);
DDX_Control(pDX, IDC_GRID5, grid5);
DDX_Control(pDX, IDC_GRID4, grid4);
DDX_Control(pDX, IDC_GRID3, grid3);
DDX_Control(pDX, IDC_GRID2, grid2);
DDX_Control(pDX, IDC_GRID16, grid16);
DDX_Control(pDX, IDC_GRID15, grid15);
DDX_Control(pDX, IDC_GRID14, grid14);
DDX_Control(pDX, IDC_GRID13, grid13);
DDX_Control(pDX, IDC_GRID12, grid12);
DDX_Control(pDX, IDC_GRID11, grid11);
DDX_Control(pDX, IDC_GRID10, grid10);
DDX_Control(pDX, IDC_GRID1, grid1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVwumpusDlg, CDialog)
//{{AFX_MSG_MAP(CVwumpusDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_RANDMAP, OnShow)
ON_BN_CLICKED(IDC_GAME, OnGame)
ON_BN_CLICKED(IDC_ONCEAGAIN, OnOnceagain)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVwumpusDlg message handlers
BOOL CVwumpusDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
ShowMap(hero.map);
ShowDanger(hero.handbook);
ShowSence(hero.handbook);
ShowGain(hero.score);
ShowHeroInfo(HeroInfo);
m_nOnceAgain.EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
void CVwumpusDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CVwumpusDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CVwumpusDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CVwumpusDlg::ShowMap(Map map)
{
CStatic * Grid1=&grid1;
CStatic * Grid2=&grid2;
CStatic * Grid3=&grid3;
CStatic * Grid4=&grid4;
CStatic * Grid5=&grid5;
CStatic * Grid6=&grid6;
CStatic * Grid7=&grid7;
CStatic * Grid8=&grid8;
CStatic * Grid9=&grid9;
CStatic * Grid10=&grid10;
CStatic * Grid11=&grid11;
CStatic * Grid12=&grid12;
CStatic * Grid13=&grid13;
CStatic * Grid14=&grid14;
CStatic * Grid15=&grid15;
CStatic * Grid16=&grid16;
HBITMAP Blank,Wumpus,Pit,Gold,Hero,DeadWumpus;
Blank=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BLANK));
Wumpus=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_WUMPUS));
Pit=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_PIT));
Gold=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_GOLD));
Hero=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_HERO));
DeadWumpus=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_DWUMPUS));
if(map.maze[0][0].sthin==him)
Grid1->SetBitmap(Hero);
else if(map.maze[0][0].sthin==wumpus)
Grid1->SetBitmap(Wumpus);
else if(map.maze[0][0].sthin==deadwumpus)
Grid1->SetBitmap(DeadWumpus);
else if(map.maze[0][0].sthin==pit)
Grid1->SetBitmap(Pit);
else if(map.maze[0][0].sthin==gold)
Grid1->SetBitmap(Gold);
else Grid1->SetBitmap(Blank);
if(map.maze[0][1].sthin==him)
Grid2->SetBitmap(Hero);
else if(map.maze[0][1].sthin==wumpus)
Grid2->SetBitmap(Wumpus);
else if(map.maze[0][1].sthin==deadwumpus)
Grid2->SetBitmap(DeadWumpus);
else if(map.maze[0][1].sthin==pit)
Grid2->SetBitmap(Pit);
else if(map.maze[0][1].sthin==gold)
Grid2->SetBitmap(Gold);
else Grid2->SetBitmap(Blank);
if(map.maze[0][2].sthin==him)
Grid3->SetBitmap(Hero);
else if(map.maze[0][2].sthin==wumpus)
Grid3->SetBitmap(Wumpus);
else if(map.maze[0][2].sthin==deadwumpus)
Grid3->SetBitmap(DeadWumpus);
else if(map.maze[0][2].sthin==pit)
Grid3->SetBitmap(Pit);
else if(map.maze[0][2].sthin==gold)
Grid3->SetBitmap(Gold);
else Grid3->SetBitmap(Blank);
if(map.maze[0][3].sthin==him)
Grid4->SetBitmap(Hero);
else if(map.maze[0][3].sthin==wumpus)
Grid4->SetBitmap(Wumpus);
else if(map.maze[0][3].sthin==deadwumpus)
Grid4->SetBitmap(DeadWumpus);
else if(map.maze[0][3].sthin==pit)
Grid4->SetBitmap(Pit);
else if(map.maze[0][3].sthin==gold)
Grid4->SetBitmap(Gold);
else Grid4->SetBitmap(Blank);
if(map.maze[1][0].sthin==him)
Grid5->SetBitmap(Hero);
else if(map.maze[1][0].sthin==wumpus)
Grid5->SetBitmap(Wumpus);
else if(map.maze[1][0].sthin==deadwumpus)
Grid5->SetBitmap(DeadWumpus);
else if(map.maze[1][0].sthin==pit)
Grid5->SetBitmap(Pit);
else if(map.maze[1][0].sthin==gold)
Grid5->SetBitmap(Gold);
else Grid5->SetBitmap(Blank);
if(map.maze[1][1].sthin==him)
Grid6->SetBitmap(Hero);
else if(map.maze[1][1].sthin==wumpus)
Grid6->SetBitmap(Wumpus);
else if(map.maze[1][1].sthin==deadwumpus)
Grid6->SetBitmap(DeadWumpus);
else if(map.maze[1][1].sthin==pit)
Grid6->SetBitmap(Pit);
else if(map.maze[1][1].sthin==gold)
Grid6->SetBitmap(Gold);
else Grid6->SetBitmap(Blank);
if(map.maze[1][2].sthin==him)
Grid7->SetBitmap(Hero);
else if(map.maze[1][2].sthin==wumpus)
Grid7->SetBitmap(Wumpus);
else if(map.maze[1][2].sthin==deadwumpus)
Grid7->SetBitmap(DeadWumpus);
else if(map.maze[1][2].sthin==pit)
Grid7->SetBitmap(Pit);
else if(map.maze[1][2].sthin==gold)
Grid7->SetBitmap(Gold);
else Grid7->SetBitmap(Blank);
if(map.maze[1][3].sthin==him)
Grid8->SetBitmap(Hero);
else if(map.maze[1][3].sthin==wumpus)
Grid8->SetBitmap(Wumpus);
else if(map.maze[1][3].sthin==deadwumpus)
Grid8->SetBitmap(DeadWumpus);
else if(map.maze[1][3].sthin==pit)
Grid8->SetBitmap(Pit);
else if(map.maze[1][3].sthin==gold)
Grid8->SetBitmap(Gold);
else Grid8->SetBitmap(Blank);
if(map.maze[2][0].sthin==him)
Grid9->SetBitmap(Hero);
else if(map.maze[2][0].sthin==wumpus)
Grid9->SetBitmap(Wumpus);
else if(map.maze[2][0].sthin==deadwumpus)
Grid9->SetBitmap(DeadWumpus);
else if(map.maze[2][0].sthin==pit)
Grid9->SetBitmap(Pit);
else if(map.maze[2][0].sthin==gold)
Grid9->SetBitmap(Gold);
else Grid9->SetBitmap(Blank);
if(map.maze[2][1].sthin==him)
Grid10->SetBitmap(Hero);
else if(map.maze[2][1].sthin==wumpus)
Grid10->SetBitmap(Wumpus);
else if(map.maze[2][1].sthin==deadwumpus)
Grid10->SetBitmap(DeadWumpus);
else if(map.maze[2][1].sthin==pit)
Grid10->SetBitmap(Pit);
else if(map.maze[2][1].sthin==gold)
Grid10->SetBitmap(Gold);
else Grid10->SetBitmap(Blank);
if(map.maze[2][2].sthin==him)
Grid11->SetBitmap(Hero);
else if(map.maze[2][2].sthin==wumpus)
Grid11->SetBitmap(Wumpus);
else if(map.maze[2][2].sthin==deadwumpus)
Grid11->SetBitmap(DeadWumpus);
else if(map.maze[2][2].sthin==pit)
Grid11->SetBitmap(Pit);
else if(map.maze[2][2].sthin==gold)
Grid11->SetBitmap(Gold);
else Grid11->SetBitmap(Blank);
if(map.maze[2][3].sthin==him)
Grid12->SetBitmap(Hero);
else if(map.maze[2][3].sthin==wumpus)
Grid12->SetBitmap(Wumpus);
else if(map.maze[2][3].sthin==deadwumpus)
Grid12->SetBitmap(DeadWumpus);
else if(map.maze[2][3].sthin==pit)
Grid12->SetBitmap(Pit);
else if(map.maze[2][3].sthin==gold)
Grid12->SetBitmap(Gold);
else Grid12->SetBitmap(Blank);
if(map.maze[3][0].sthin==him)
Grid13->SetBitmap(Hero);
else if(map.maze[3][0].sthin==wumpus)
Grid13->SetBitmap(Wumpus);
else if(map.maze[3][0].sthin==deadwumpus)
Grid13->SetBitmap(DeadWumpus);
else if(map.maze[3][0].sthin==pit)
Grid13->SetBitmap(Pit);
else if(map.maze[3][0].sthin==gold)
Grid13->SetBitmap(Gold);
else Grid13->SetBitmap(Blank);
if(map.maze[3][1].sthin==him)
Grid14->SetBitmap(Hero);
else if(map.maze[3][1].sthin==wumpus)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -