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

📄 lgamedlg.cpp

📁 小游戏锦集:猜数字
💻 CPP
字号:
// lgameDlg.cpp : implementation file
//

#include "stdafx.h"
#include "lgame.h"
#include "lgameDlg.h"
#include "login.h"
#include<String.h>

#define W_H3   36

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define UP		1
#define DOWN	2
#define LEFT	3
#define RIGHT	4
#define W_H   48
/////////////////////////////////////////////////////////////////////////////
// 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()

/////////////////////////////////////////////////////////////////////////////
// CLgameDlg dialog

CLgameDlg::CLgameDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLgameDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLgameDlg)
	m_ed1ab = _T("");
	m_ed1input = _T("");
	m_E2times = 0;
	m_E3hit = 0;
	m_E3mic = 0;
	m_E3ratio = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	////////////////////////////////////////////add
	
	micbtn[0].LoadBitmaps(_T("ymic"),_T("yhit"),_T("ymic"),_T("yhit"));
	micbtn[1].LoadBitmaps(_T("gmic"),_T("ghit"),_T("gmic"),_T("ghit"));
	micbtn[2].LoadBitmaps(_T("gmic"),_T("ghit"),_T("gmic"),_T("ghit"));
	micbtn[3].LoadBitmaps(_T("gmic"),_T("ghit"),_T("gmic"),_T("ghit"));
	
}

void CLgameDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLgameDlg)
	DDX_Control(pDX, IDC_EDIT3, m_e3);
	DDX_Control(pDX, IDC_BUTTON3start, m_B3start);
	DDX_Control(pDX, IDC_EDIT3hinum, m_e33);
	DDX_Control(pDX, IDC_EDIT3micnum, m_e32);
	DDX_Control(pDX, IDC_EDIT3ratio, m_e31);
	DDX_Control(pDX, IDC_STATIC3hitnum, m_S33);
	DDX_Control(pDX, IDC_STATIC3micnum, m_S32);
	DDX_Control(pDX, IDC_STATIC3ratio, m_S31);
	DDX_Control(pDX, IDC_COMBO3lev, m_3lev);
	DDX_Control(pDX, IDC_EDIT2times, m_E2time);
	DDX_Control(pDX, IDC_BUTTON2ag, m_B2ag);
	DDX_Control(pDX, IDC_STATIC12, m_S12);
	DDX_Control(pDX, IDC_STATIC11, m_S11);
	DDX_Control(pDX, IDC_STATICbor, m_staticbor);
	DDX_Control(pDX, IDC_COMBOlev, m_comlev);
	DDX_Control(pDX, IDC_EDIT1input, m_E1in);
	DDX_Control(pDX, IDC_EDIT1ab, m_E1ab);
	DDX_Control(pDX, IDC_BUTTON1real, m_B1re);
	DDX_Control(pDX, IDC_BUTTON1guess, m_B1gu);
	DDX_Control(pDX, IDC_BUTTON1ag, m_B1ag);
	DDX_Control(pDX, IDC_TAB, m_tab);
	DDX_Control(pDX, IDC_LIST1his, m_list1);
	DDX_Text(pDX, IDC_EDIT1ab, m_ed1ab);
	DDX_Text(pDX, IDC_EDIT1input, m_ed1input);
	DDV_MaxChars(pDX, m_ed1input, 4);
	DDX_Text(pDX, IDC_EDIT2times, m_E2times);
	DDX_Text(pDX, IDC_EDIT3hinum, m_E3hit);
	DDX_Text(pDX, IDC_EDIT3micnum, m_E3mic);
	DDX_Text(pDX, IDC_EDIT3ratio, m_E3ratio);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CLgameDlg, CDialog)
	//{{AFX_MSG_MAP(CLgameDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1ag, OnBUTTON1ag)
	ON_BN_CLICKED(IDC_BUTTON1guess, OnBUTTON1guess)
	ON_BN_CLICKED(IDC_BUTTON1real, OnBUTTON1real)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, OnSelchangeTab)
	ON_BN_CLICKED(IDC_BUTTON2ag, OnBUTTON2ag)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON3start, OnBUTTON3start)
	ON_BN_CLICKED(IDC_BUTTON331, OnButton331)
	ON_BN_CLICKED(IDC_BUTTON332, OnButton332)
	ON_BN_CLICKED(IDC_BUTTON333, OnButton333)
	ON_BN_CLICKED(IDC_BUTTON334, OnButton334)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLgameDlg message handlers
CBitmap bip[9];

BOOL CLgameDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
int i;
guessnum=0;
OnBUTTON1ag();
m_tab.InsertItem(0,"NumBingo");
m_tab.InsertItem(1,"PushBrick");
m_tab.InsertItem(2,"HitMic");

/////////////////////////////////
int idbip[9];
idbip[1]=IDB_BITMAP2;idbip[2]=IDB_BITMAP3;idbip[3]=IDB_BITMAP4;
idbip[4]=IDB_BITMAP5;idbip[5]=IDB_BITMAP6;idbip[6]=IDB_BITMAP7;
idbip[7]=IDB_BITMAP8;idbip[8]=IDB_BITMAP9;
for(i=1;i<10;i++)
		Bpos[i]=i;
for(i=1;i<10;i++) 
{
int x=60+((Bpos[i]-1)%3)*W_H+2 , y=80+((Bpos[i]-1)/3)*W_H+2;

	btn[i]=new CButton;//Bpos[i]=0;
	btn[i]->Create("",BS_DEFPUSHBUTTON|BS_BITMAP,
			CRect(x,y,x+W_H-2,y+W_H-2),this,i+100);
	bip[i].LoadBitmap(idbip[i]);
	btn[i]->SetBitmap(bip[i]);
}

m_B2ag.ShowWindow(SW_HIDE);
m_E2time.ShowWindow(SW_HIDE);
m_comlev.ShowWindow(SW_HIDE);
m_staticbor.ShowWindow(SW_HIDE);

intAg=0	;
m_comlev.SetCurSel(0);
////////////////////////////////game 3:
micbtn[0].SubclassDlgItem(IDC_BUTTON331,this);
micbtn[1].SubclassDlgItem(IDC_BUTTON332,this);
micbtn[2].SubclassDlgItem(IDC_BUTTON333,this);
micbtn[3].SubclassDlgItem(IDC_BUTTON334,this);
for(i=0;i<4;i++)
micbtn[i].SizeToContent();

for(i=1;i<5;i++)
{
ideven[i]=100+i;idpos[i]=0;enable[i]=0;
}
timerv[1]=timerv[2]=timerv[3]=timerv[4]=0;
for(i=1;i<10;i++)
micpos[i]=0;

micnum=hitnum=0;
m_3lev.SetCurSel(0);
	// 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
	/*
	int logtime;
	for(logtime=0;logtime<3;logtime++)
	{
	login logdlg;
	logdlg.DoModal();
	if(logdlg.ifok==1)
	{logtime=10;break;}
	if(logdlg.ifok==-1)break;
	MessageBox("Wrong!");
	}
	if(logtime!=10)OnOK();
	*/

	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CLgameDlg::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 CLgameDlg::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();
	}
	static int once=0;
	if(once==0)
	{
		m_e31.ShowWindow(SW_HIDE);
		m_e32.ShowWindow(SW_HIDE);
		m_e33.ShowWindow(SW_HIDE);
		m_S31.ShowWindow(SW_HIDE);
		m_S32.ShowWindow(SW_HIDE);
		m_S33.ShowWindow(SW_HIDE);
		m_3lev.ShowWindow(SW_HIDE);
		m_B3start.ShowWindow(SW_HIDE);
		m_e3.ShowWindow(SW_HIDE);
		for(int i=0;i<4;i++)
			micbtn[i].ShowWindow(SW_HIDE);
	}
	once=1;
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CLgameDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}


void CLgameDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
//	CClientDC *c=new CClientDC(this);
//	c->SetBkMode(TRANSPARENT);
//	c->TextOut(80,75,"*   ");
	int i;
	switch(m_tab.GetCurSel())
	{
	case 0:
		for(i=1;i<9;i++)
			btn[i]->ShowWindow(SW_HIDE);
	m_staticbor.ShowWindow(SW_HIDE);
	m_B2ag.ShowWindow(SW_HIDE);
	m_E2time.ShowWindow(SW_HIDE);
	m_comlev.ShowWindow(SW_HIDE);

		m_e31.ShowWindow(SW_HIDE);
		m_e32.ShowWindow(SW_HIDE);
		m_e33.ShowWindow(SW_HIDE);
		m_S31.ShowWindow(SW_HIDE);
		m_S32.ShowWindow(SW_HIDE);
		m_S33.ShowWindow(SW_HIDE);
		m_3lev.ShowWindow(SW_HIDE);
		m_B3start.ShowWindow(SW_HIDE);
		m_e3.ShowWindow(SW_HIDE);
		for(i=0;i<4;i++)
			micbtn[i].ShowWindow(SW_HIDE);

		m_S11.ShowWindow(SW_SHOW);
		m_S12.ShowWindow(SW_SHOW);	
		m_B1ag.ShowWindow(SW_SHOW);
		m_B1gu.ShowWindow(SW_SHOW);
		m_B1re.ShowWindow(SW_SHOW);
		m_E1ab.ShowWindow(SW_SHOW);
		m_E1in.ShowWindow(SW_SHOW);
		m_list1.ShowWindow(SW_SHOW);break;
	case 1:
		m_S11.ShowWindow(SW_HIDE);
		m_S12.ShowWindow(SW_HIDE);
		m_B1ag.ShowWindow(SW_HIDE);
		m_B1gu.ShowWindow(SW_HIDE);
		m_B1re.ShowWindow(SW_HIDE);
		m_E1ab.ShowWindow(SW_HIDE);
		m_E1in.ShowWindow(SW_HIDE);
		m_list1.ShowWindow(SW_HIDE);

		m_e31.ShowWindow(SW_HIDE);
		m_e32.ShowWindow(SW_HIDE);
		m_e33.ShowWindow(SW_HIDE);
		m_S31.ShowWindow(SW_HIDE);
		m_S32.ShowWindow(SW_HIDE);
		m_S33.ShowWindow(SW_HIDE);
		m_3lev.ShowWindow(SW_HIDE);
		m_B3start.ShowWindow(SW_HIDE);
		m_e3.ShowWindow(SW_HIDE);
		for(i=0;i<4;i++)
			micbtn[i].ShowWindow(SW_HIDE);

		for(i=1;i<9;i++)
			btn[i]->ShowWindow(SW_SHOW);
		m_staticbor.ShowWindow(SW_SHOW);
		m_B2ag.ShowWindow(SW_SHOW);
		m_E2time.ShowWindow(SW_SHOW);
		m_comlev.ShowWindow(SW_SHOW);
		m_E2time.SetFocus();
		break;
	case 2:
		m_S11.ShowWindow(SW_HIDE);
		m_S12.ShowWindow(SW_HIDE);
		m_B1ag.ShowWindow(SW_HIDE);
		m_B1gu.ShowWindow(SW_HIDE);
		m_B1re.ShowWindow(SW_HIDE);
		m_E1ab.ShowWindow(SW_HIDE);
		m_E1in.ShowWindow(SW_HIDE);
		m_list1.ShowWindow(SW_HIDE);
		for(i=1;i<9;i++)
			btn[i]->ShowWindow(SW_HIDE);
		m_staticbor.ShowWindow(SW_HIDE);
		m_B2ag.ShowWindow(SW_HIDE);
		m_E2time.ShowWindow(SW_HIDE);
		m_comlev.ShowWindow(SW_HIDE);

		m_e31.ShowWindow(SW_SHOW);
		m_e32.ShowWindow(SW_SHOW);
		m_e33.ShowWindow(SW_SHOW);
		m_S31.ShowWindow(SW_SHOW);
		m_S32.ShowWindow(SW_SHOW);
		m_S33.ShowWindow(SW_SHOW);
		m_3lev.ShowWindow(SW_SHOW);
		m_B3start.ShowWindow(SW_SHOW);
		m_e3.ShowWindow(SW_SHOW);
//		for(i=0;i<4;i++)
//			micbtn[i].ShowWindow(SW_SHOW);
		break;
	
	}
	*pResult = 0;
}

BOOL CLgameDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	int tabn=m_tab.GetCurSel();
	if(pMsg->message==WM_KEYDOWN||pMsg->message==WM_CHAR)
    {
		if(tabn==0&&pMsg->wParam==0x0d)
		{
			OnBUTTON1guess();
			pMsg->message=0;//VK_MENU;
		}

		if(tabn==1)
        switch(pMsg->wParam)
        {
        case VK_DOWN:
            changButton(DOWN);
            break;
        case VK_UP:	
			changButton(UP);
			break;
		case VK_LEFT:
			changButton(LEFT);
			break;
		case VK_RIGHT:	
			changButton(RIGHT);
		}
		if(tabn==2)
		switch(pMsg->wParam)
		{
			case '7':
			keymic(1);
				break;
			case '8':
			keymic(2);
				break;
			case '9':
			keymic(3);
				break;
			case '4':
			keymic(4);
				break;
			case '5':
			keymic(5);
				break;
			case '6':
			keymic(6);
				break;
			case '1':
			keymic(7);
				break;
			case '2':
			keymic(8);
				break;
			case '3':
				keymic(9);
				break;
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

void CLgameDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	int num=nIDEvent%100,pos,x,y;

	if(timerv[num]==0)
	{
		micbtn[num-1].ShowWindow(SW_HIDE);
		micbtn[num-1].EnableWindow(0);
		enable[num]=0;
		micpos[idpos[num]]=0;
	}
	else
	{
		srand( (unsigned)time( NULL ) );
		while(1)
		{
			pos=rand()%9+1;
			if(micpos[pos]==0)
			{micpos[pos]=1;break;}
		}
		idpos[num]=pos;
		x=60+((pos-1)%3)*(W_H3+20) ; y=78+((pos-1)/3)*(W_H3+20);
		micbtn[num-1].SetWindowPos(
			&wndTop,x,y,W_H3-2,W_H3-2,SWP_SHOWWINDOW);

		m_E3mic=micnum++;
		UpdateData(0);
		micbtn[num-1].EnableWindow(1);
		enable[num]=1;
		micbtn[num-1].ShowWindow(SW_SHOW);
	}

	timerv[num]=1-timerv[num];
	CDialog::OnTimer(nIDEvent);
}

void CLgameDlg::keymic(int key)
{
				int i;
				for(i=1;i<5;i++)
					if(idpos[i]==key)
						break;
				if(i==5)return;
				switch(i)
				{
				case 1:
				OnButton331() ;break;
				case 2:
				OnButton332() ;break;
				case 3:
				OnButton333() ;break;
				case 4:
				OnButton334() ;break;
				}
}

⌨️ 快捷键说明

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