📄 datdlg.cpp
字号:
// DatDlg.cpp : implementation file
//
#include "stdafx.h"
#include "guessNum.h"
#include "DatDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDatDlg dialog
CDatDlg::CDatDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDatDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDatDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDatDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDatDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDatDlg, CDialog)
//{{AFX_MSG_MAP(CDatDlg)
ON_WM_PAINT()
ON_BN_CLICKED(IDDELETE, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDatDlg message handlers
void CDatDlg::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{ // storing code
ar<<num;
for(int i=0;i<5;i++)
{
ar<<name[i]<<dat[i]<<time[i];
}
}
else
{ // loading code
ar>>num;
for(int i=0;i<5;i++)
{
ar>>name[i]>>dat[i]>>time[i];
}
}
}
#include<io.h>
void CDatDlg::OnPaint()
{
LoadDat();
CString out;
char line[200]="";
int i=0;
for(i=0;i<num;i++)
{
memset(line,0,200);
sprintf(line,"第%d名\t姓名:%-10s次数:%d 用时:%d\n",i+1,name[i],dat[i],time[i]);
out+=line;
}
for(;i<5;i++)
{
memset(line,0,200);
sprintf(line,"第%d名\t暂缺\n",i+1);
out+=line;
}
CPaintDC dc(this); // device context for painting
dc.SetBkMode(TRANSPARENT);
dc.DrawText(out,CRect(20,20,1000,1000),DT_EXPANDTABS);
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
}
void CDatDlg::NewData()
{
LoadDat();
int once=1;
for(int i=4;i>=0;i--)
{
if(dat[i]>=datnew)
{
if(dat[i]==datnew)
if(time[i]<=timenew)
break;
if(i!=4)
{
dat[i+1]=dat[i];
name[i+1]=name[i];
time[i+1]=time[i];
}
if(once==1)
((CGuessNumApp*)AfxGetApp())->input.DoModal();
once=0;
dat[i]=datnew;
name[i]=namenew;
time[i]=timenew;
}
else
{
break;
}
}
if(num!=5) num++;
CFile f("猜数字.dat",CFile::modeWrite|CFile::modeCreate);//store ar
CArchive ar(&f,CArchive::store);
Serialize(ar);
}
void CDatDlg::OnDelete()
{
DeleteFile("猜数字.dat");
Invalidate();
}
void CDatDlg::LoadDat()
{
if(_access("猜数字.dat",0)==0)
{
CFile f("猜数字.dat",CFile::modeRead);
CArchive ar(&f,CArchive::load);
Serialize(ar);
}
else
{
num=0;
for(int i=0;i<5;i++)
time[i]=dat[i]=0xffff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -