📄 list1dlg.cpp
字号:
// List1Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "FoodMenu.h"
#include "List1Dlg.h"
#include"FoodNurritionDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CList1Dlg dialog
CString str;
CList1Dlg::CList1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CList1Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CList1Dlg)
m_edit01 = _T("");
m_edit02 = _T("");
m_edit03 = _T("");
m_edit04 = _T("");
m_edit05 = _T("");
m_edit06 = _T("");
m_edit07 = _T("");
m_edit08 = _T("");
m_edit09 = _T("");
m_edit10 = _T("");
m_edit11 = _T("");
m_edit12 = _T("");
m_edit13 = _T("");
m_edit14 = _T("");
m_test = _T("");
//}}AFX_DATA_INIT
}
void CList1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CList1Dlg)
DDX_Text(pDX, IDC_STATIC01, m_edit01);
DDX_Text(pDX, IDC_STATIC02, m_edit02);
DDX_Text(pDX, IDC_STATIC03, m_edit03);
DDX_Text(pDX, IDC_STATIC04, m_edit04);
DDX_Text(pDX, IDC_STATIC05, m_edit05);
DDX_Text(pDX, IDC_STATIC06, m_edit06);
DDX_Text(pDX, IDC_STATIC07, m_edit07);
DDX_Text(pDX, IDC_STATIC08, m_edit08);
DDX_Text(pDX, IDC_STATIC09, m_edit09);
DDX_Text(pDX, IDC_STATIC10, m_edit10);
DDX_Text(pDX, IDC_STATIC11, m_edit11);
DDX_Text(pDX, IDC_STATIC12, m_edit12);
DDX_Text(pDX, IDC_STATIC13, m_edit13);
DDX_Text(pDX, IDC_STATIC14, m_edit14);
DDX_Text(pDX, IDC_STATIC_test, m_test);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CList1Dlg, CDialog)
//{{AFX_MSG_MAP(CList1Dlg)
ON_BN_CLICKED(IDC_FIRST_BUTTON1, OnFirstButton1)
ON_BN_CLICKED(IDC_FRONT_BUTTON2, OnFrontButton2)
ON_BN_CLICKED(IDC_NEXT_BUTTON3, OnNextButton3)
ON_BN_CLICKED(IDC_LAST_BUTTON4, OnLastButton4)
ON_BN_CLICKED(IDC_HOME, OnHome)
ON_BN_CLICKED(IDC_BACK, OnBack)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CList1Dlg message handlers
void CList1Dlg::OnFirstButton1()
{
NextIpSave=0;
i=0;
ClearEdit();
ReadPage();
}
void CList1Dlg::OnFrontButton2()
{
// MessageBox((CString)FoodNo);
for(int x=0;str.GetAt(x)!='\0';x++)
{
if(str.GetAt(x)=='@'&&str.GetAt(x+1)==1)
{ MessageBox((CString)FoodNo);
i=0;
break;
}
else if(str.GetAt(x)=='@'&&str.GetAt(x+1)==(FoodNo-1))
{
i=x;
break;
}
}
// FoodNo=str.GetAt(i+1);
// MessageBox((CString)FoodNo);
// if(str.GetAt(i+1)==1)
// i=0;
ClearEdit();
ReadPage();
UpdateData(FALSE);
}
void CList1Dlg::OnNextButton3()
{
ClearEdit();
if(str.GetAt(ip)=='\0')
{
// MessageBox(TEXT("已是最后一页"));
int x=0;
while(str.GetAt(x)!='\0')
x++;
x-=1;
for(int j=0;j<10;j++)
{
while(str.GetAt(x)!='@')
{
x--;
}
x-=1;
}
i=x+1;
}
else if(NextIpSave==0)
i=ip;
ReadPage();
ip=i;
}
void CList1Dlg::OnLastButton4()
{
ClearEdit();
length=0;
while(str.GetAt(length)!='\0')
length++;
length-=1;
for(int j=0;j<10;j++)
{
while(str.GetAt(length)!='@')
{
length--;
}
length-=1;
}
i=length+1;
ReadPage();
UpdateData(FALSE);
}
BOOL CList1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
/////////////////////////////////////////////////////////////////////////
home.LoadBitmaps(IDB_home,IDB_home);
back.LoadBitmaps(IDB_return,IDB_return);
first.LoadBitmaps(IDB_first_page,IDB_first_page);
front.LoadBitmaps(IDB_front_page,IDB_front_page);
next.LoadBitmaps(IDB_next_page,IDB_next_page);
last.LoadBitmaps(IDB_last_page,IDB_last_page);
VERIFY(home.SubclassDlgItem(IDC_HOME, this));
VERIFY(back.SubclassDlgItem(IDC_BACK, this));
VERIFY(first.SubclassDlgItem(IDC_FIRST_BUTTON1, this));
VERIFY(front.SubclassDlgItem(IDC_FRONT_BUTTON2, this));
VERIFY(next.SubclassDlgItem(IDC_NEXT_BUTTON3, this));
VERIFY(last.SubclassDlgItem(IDC_LAST_BUTTON4, this));
home.SizeToContent();
back.SizeToContent();
first.SizeToContent();
front.SizeToContent();
next.SizeToContent();
last.SizeToContent();
//////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------read file
i=0;
ip=0;
NextIpSave=0;
CFile file(Filename,CFile::modeRead);
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]='\0';
file.Read(pBuf,dwFileLen);
str=pBuf;
file.Close();
i=0;
ReadPage();
pag=0;
// ShowFile();
UpdateData(FALSE);
// delete [] pBuf;
//------------------------------------------------
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CList1Dlg::ReadPage()
{
// int i=0;
FoodNo=str.GetAt(i+1);
if(str.GetAt(i)=='@')//显示第一行内容
{
// FoodNo=str.GetAt(i+1);
// MessageBox((CString)FoodNo);
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line1+=str.GetAt(i);
}
m_edit01=Line1;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第二行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line2+=str.GetAt(i);
}
m_edit02=Line2;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第三行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line3+=str.GetAt(i);
}
m_edit03=Line3;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第四行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line4+=str.GetAt(i);
}
m_edit04=Line4;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第五行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line5+=str.GetAt(i);
}
m_edit05=Line5;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第八行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line8+=str.GetAt(i);
}
m_edit08=Line8;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第九行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line9+=str.GetAt(i);
}
m_edit09=Line9;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第十行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line10+=str.GetAt(i);
}
m_edit10=Line10;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第十一行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line11+=str.GetAt(i);
}
m_edit11=Line11;
UpdateData(FALSE);
i+=1;
}
if(str.GetAt(i)=='@'&&str.GetAt(i+1)=='*')//显示第十二行内容
{
i=i+2;
for(;str.GetAt(i)!='\n';i++)
{
Line12+=str.GetAt(i);
}
m_edit12=Line12;
UpdateData(FALSE);
i+=1;
}
ip=i;
}
CString CList1Dlg::ShowFile()
{
char by=pBuf[page[pag]];//取一个字。
CString temp;//暂存一行的字
int count=0;//第几个Edit
while(by!='\0')
{
if(by=='\n') //当回车时输出
{
i++;
by=pBuf[i];
switch(count)
{
case 1:
{ m_edit01=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 2:
{ m_edit02=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 3:
{ m_edit03=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 4:
{ m_edit04=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 5:
{ m_edit05=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 6:
{ m_edit06=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 7:
{ m_edit07=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 8:
{ m_edit08=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 9:
{ m_edit09=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 10:
{ m_edit10=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 11:
{ m_edit11=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 12:
{ m_edit12=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 13:
{ m_edit13=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 14:
{ m_edit14=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
// default:break;
}//switch(count)
if(by=='@'&&pBuf[i+1]!='*')//回车后是下一字符叶标志@时而不是@*下一行标志时跳出读取。
break;
continue;
}//if(by=='\n')
else
if(by!='@'&&by!='*'&&by!='#')//读取文字。
{
temp+=by;
i++;
by=pBuf[i];
if(by=='\0')
{
switch(count)
{
case 1:
{ m_edit01=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 2:
{ m_edit02=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 3:
{ m_edit03=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 4:
{ m_edit04=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 5:
{ m_edit05=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 6:
{ m_edit06=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 7:
{ m_edit07=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 8:
{ m_edit08=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 9:
{ m_edit09=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 10:
{ m_edit10=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 11:
{ m_edit11=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 12:
{ m_edit12=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 13:
{ m_edit13=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
case 14:
{ m_edit14=temp;
temp.Empty();
UpdateData(FALSE);
break;
}
default:break;
}
continue;
}
}//if(by!='@'&&by!='*')
else
if(by=='*'||by=='#')//
{
if(by=='#')//换从第8个Edit开始显示
count=8;
i++;
by=pBuf[i];
}
else
if(by=='@')//换行count++,但是不知道是不是换页。
{
i++;
by=pBuf[i];
if(by!='*')
{
// page[pag]=i;
// pag++;
count=0;
}
count++;
}//if(by=='@')
}//while(by!='\0')
return temp;
}
/*
void CList1Dlg::ReadPage()
{
bool IsFoodName=false;
// char by=pBuf[0];//当只是将char改为CString时显示空白
CString by=str.GetAt(0);
UpdateData(FALSE);
// MessageBox(str);
int p=0;
int temp=0;
while(by!='\0')//是不是字符串尾
{
if(str.GetAt(temp+1)=='\0')
lastpageNumber=p-1;//倒数后一个食物名称
if(by=='@'&&str.GetAt(temp+1)!='*')
{
IsFoodName=true;
page[p]=temp;
p++;
}
if(by=='\n')
IsFoodName=false;
if(IsFoodName)
foodname[p-1]+=by;
temp++;
by=str.GetAt(temp);
}
m_edit01="显示中文";
UpdateData(FALSE);
}
*/
void CList1Dlg::ClearEdit()
{
m_edit01=TEXT("");
Line1.Empty();
m_edit02=TEXT("");
Line2.Empty();
m_edit03=TEXT("");
Line3.Empty();
m_edit04=TEXT("");
Line4.Empty();
m_edit05=TEXT("");
Line5.Empty();
m_edit06=TEXT("");
Line7.Empty();
m_edit07=TEXT("");
Line7.Empty();
m_edit08=TEXT("");
Line8.Empty();
m_edit09=TEXT("");
Line9.Empty();
m_edit10=TEXT("");
Line10.Empty();
m_edit11=TEXT("");
Line11.Empty();
m_edit12=TEXT("");
Line12.Empty();
m_edit13=TEXT("");
Line13.Empty();
m_edit14=TEXT("");
Line14.Empty();
UpdateData(FALSE);
}
void CList1Dlg::OnHome()
{
CDialog::OnOK();
CDialog::DestroyWindow();
// CFoodNurritionDlg::DestroyWindow();
}
void CList1Dlg::OnBack()
{
CDialog::OnCancel();
CDialog::DestroyWindow();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -