📄 jiludlg.cpp
字号:
// JiLuDlg.cpp : implementation file
//
#include "stdafx.h"
#include "box9.h"
#include "JiLuDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include"box9Dlg.h"
/////////////////////////////////////////////////////////////////////////////
// CJiLuDlg dialog
CJiLuDlg::CJiLuDlg(CWnd* pParent /*=NULL*/)
: CDialog(CJiLuDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CJiLuDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CJiLuDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CJiLuDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CJiLuDlg, CDialog)
//{{AFX_MSG_MAP(CJiLuDlg)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_BUTTON1, OnClear)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CJiLuDlg message handlers
void CJiLuDlg::OnPaint()
{
//读取记录数据
LoadDat();
CPaintDC dc(this); // device context for painting
CRect rect(30,30,1000,200);
char out[1024]="";
for(int i=0;i<m_i;i++){
char outOneLine[100]="";
sprintf(outOneLine,"第%d名\t姓名:%-12s步数:%d 时间:%d\n",i+1,m_name[i],m_iJiLu[i],time[i]);
strcat(out,outOneLine);
}
for(;i<5;i++){
char outOneLine[100]="";
sprintf(outOneLine,"第%d名\t空缺\n",i+1);
strcat(out,outOneLine);
}
dc.SetBkMode(TRANSPARENT);
dc.DrawText(out,-1,&rect,DT_EXPANDTABS);
}
void CJiLuDlg::OnClear()
{
DeleteFile(datfilename);
Invalidate();
}
void CJiLuDlg::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{ // storing code
ar<<m_i;
for(int i=0;i<5;i++)
{
ar<<m_name[i]<<m_iJiLu[i]<<time[i];
}
}
else
{ // loading code
ar>>m_i;
for(int i=0;i<5;i++)
{
ar>>m_name[i]>>m_iJiLu[i]>>time[i];
}
}
}
#include<io.h>
BOOL CJiLuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
this->SetWindowText(title);
LoadDat();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
#include"nameinputdlg.h"
void CJiLuDlg::UpdateDat(int step, int time)
{
LoadDat();
if(m_i<5 || m_iJiLu[4]>step)
{
CNameInputDlg dlg;
CString title;
if(datfilename=="记录.dat")
title="恭喜你!你打破了普通拼图记录";
else
title="恭喜你!你打破了瞎子拼图记录";
dlg.title=title;
if(dlg.DoModal()!=IDC_BUTTONNAMEINPUT)
return;
}
for(int i=4;i>=0;i--)
{
if(m_iJiLu[i]>=step)
{
if(m_iJiLu[i]==step)
if(this->time[i]<=time)
continue;
if(i!=4){
m_iJiLu[i+1]=m_iJiLu[i];
m_name[i+1]=m_name[i];
this->time[i+1]=this->time[i];
}
m_iJiLu[i]=step;
m_name[i]=m_NewJiLuName;
this->time[i]=time;
}
}
if(m_i<5) m_i++;
CFile file(datfilename,CFile::modeCreate|CFile::modeWrite);
CArchive ar(&file,CArchive::store); //store when win
this->Serialize(ar);
}
void CJiLuDlg::LoadDat()
{
if(_access(datfilename,0)!=0){
m_i=0;
for(int i=0;i<5;i++){
m_iJiLu[i]=0xffff;
time[i]=0xffff;
}
}
else{
CFile file(datfilename,CFile::modeRead);
CArchive ar(&file,CArchive::load);
Serialize(ar);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -