📄 lgamedlg.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 + -