📄 lookup1dlg.cpp
字号:
// LookUp1Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "FoodMenu.h"
#include "LookUp1Dlg.h"
#include "LookUp2Dlg.h"//add
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLookUp1Dlg dialog
CLookUp1Dlg::CLookUp1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CLookUp1Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLookUp1Dlg)
m_strname = _T("");
//}}AFX_DATA_INIT
}
void CLookUp1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLookUp1Dlg)
DDX_Control(pDX, IDC_LOOKUP_COMBO, m_strCombo);
DDX_Control(pDX, IDC_LOOKUP_BUTTON9, m_lookupButton9);
DDX_Control(pDX, IDC_LOOKUP_BUTTON8, m_lookupButton8);
DDX_Control(pDX, IDC_LOOKUP_BUTTON7, m_lookupButton7);
DDX_Control(pDX, IDC_LOOKUP_BUTTON6, m_lookupButton6);
DDX_Control(pDX, IDC_LOOKUP_BUTTON5, m_lookupButton5);
DDX_Control(pDX, IDC_LOOKUP_BUTTON4, m_lookupButton4);
DDX_Control(pDX, IDC_LOOKUP_BUTTON3, m_lookupButton3);
DDX_Control(pDX, IDC_LOOKUP_BUTTON2, m_lookupButton2);
DDX_Control(pDX, IDC_LOOKUP_BUTTON12, m_lookupButton12);
DDX_Control(pDX, IDC_LOOKUP_BUTTON10, m_lookupButton10);
DDX_Control(pDX, IDC_LOOKUP_BUTTON11, m_lookupButton11);
DDX_Control(pDX, IDC_LOOKUP_BUTTON1, m_lookupButton1);
DDX_Text(pDX, IDC_STATIC1, m_strname);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLookUp1Dlg, CDialog)
//{{AFX_MSG_MAP(CLookUp1Dlg)
ON_CBN_SELCHANGE(IDC_LOOKUP_COMBO, OnSelchangeLookupCombo)
ON_BN_CLICKED(IDC_HOME, OnHome)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON1, OnLookupButton1)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON2, OnLookupButton2)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON3, OnLookupButton3)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON4, OnLookupButton4)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON5, OnLookupButton5)
ON_BN_CLICKED(IDC_LOOKUP_BUTTON6, OnLookupButton6)
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_BACK, OnBack)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLookUp1Dlg message handlers
void CLookUp1Dlg::OnSelchangeLookupCombo() //组合框的消息映射 CBN_SELCHANGE
{
//----------------------取得组合框的相关信息--------
// CString foodname1;
// CString food;
int nIndex ;
CFile file;
char *pBuf;//用于存储文件
nIndex = m_strCombo.GetCurSel();
// m_strCombo.GetLBText(nIndex,foodname1);
// foodname1.TrimRight('\n');
// MessageBox(strComboPath+foodname1+_T(".txt"));
// strOnefood.Empty();
isExistfile=FindFirstFile(TEXT("\\Storage Card\\foodMenuData\\中西菜谱\\粤菜\\"+foodname[nIndex]+_T(".txt")),&lpFileData);
if(isExistfile==INVALID_HANDLE_VALUE)
{
MessageBox(TEXT("没有这种食物的资料"),TEXT("出错啦!"),MB_ICONASTERISK |MB_OK);
FindClose(isExistfile);
return;
}
if(!file.Open(TEXT("\\Storage Card\\foodMenuData\\中西菜谱\\粤菜\\"+foodname[nIndex]+_T(".txt")),CFile::modeRead));////
{
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
file.Read(pBuf,dwFileLen);
pBuf[dwFileLen+1]='\0';
strOnefood=pBuf;
UpdateData(false);
file.Close();
delete pBuf;
Clear();
// pagenow=1;//现在是第1面
ShowFoodName();//打印菜名字
m_strname=foodname[nIndex];
UpdateData(false);
FindClose(isExistfile);//
}
//------------------------------------------------------
// LookUpTheSameMainFood(strComboPath+/*foodname[nIndex]*/_T("猪肉")+_T(".txt"));//查找所有菜谱是否含有此种原料(foodname1);//
// LookUpTheSameMainFood2(foodname1);
// foodname1=strComboPath+foodname[nIndex]+_T(".txt");
// MessageBox(foodname1);
}
void CLookUp1Dlg::LookUPMainFood() //初始化组合框,读 原料.txt 文件
{
CFile file;
char *pBuf;//用于存储文件
file.Open(strMaterialPath,CFile::modeRead);////
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
file.Read(pBuf,dwFileLen);
pBuf[dwFileLen+1]='\0';
strMaterial=pBuf;
file.Close();
delete pBuf;
CString temp;//暂存一行的字
countMainFood=0;//原料个数
int tempip=0;
for(int i=0,m=0;strMaterial.GetAt(i+1)!='\0';i++)
{
for(int j=0;strMaterial.GetAt(i+j+1)!='\n';j++)
{
foodname[m]+=strMaterial.GetAt(i+j);
}
m_strCombo.AddString(foodname[m]);
m++;
countMainFood++;//原料个数
i=i+j+1;
}
m_strCombo.SetCurSel(-1);//初始化组合框
}
BOOL CLookUp1Dlg::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();
//////////////////////////////////////////////////////////////////////////////////
Clear();//
// lastpageNumber=0;//没查找前最后一个菜名位置
// pagenow=1;
LookUPMainFood(); //初始化组合框,读 原料.txt 文件
m_brush.CreateSolidBrush(RGB(255,255,255));//此处设置的RGB值可以改变static控件的背景色。
m_color=RGB(0,0,0);//此处设置static控件的文字初始颜色。
page=0;
pagenow=0;
return TRUE; // return TRUE unless you set the focus to a control
}
/*
void CLookUp1Dlg::LookUpFoodName(CString Filename)//查找菜名字
{
//----------------读*.txt-------------
CFile file;
char *pBuf;//用于存储文件
file.Open(Filename,CFile::modeRead);////
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Read(pBuf,dwFileLen);
strFoodName=pBuf;
// MessageBox(strFoodName);
file.Close();
delete [] pBuf;
//----------------------------------------
bool IsFoodName=false;//是不是菜名
CString by=strFoodName.GetAt(0);//char by=pBuf[0];
int p=0;
int temp=0;
while(by!='\0')
{
if(strFoodName.GetAt(temp+1)=='\0')//(pBuf[temp+1]=='\0')
lastpageNumber=p-1;
if(by=='@'&&strFoodName.GetAt(temp+1)=='*')//pBuf[temp+1]!='*')//是菜名
{
IsFoodName=true;
page[p]=temp;
p++;
temp++;
by=strFoodName.GetAt(temp);//pBuf[temp];
}
if(by=='@'&&strFoodName.GetAt(temp+1)!='*')//不是菜名
IsFoodName=false;
if(IsFoodName)//是菜名添加char
{
if(by!='@'||by!='\n'||by!='*')
{
foodname[p-1]+=by;
}
}
temp++;
by=pBuf[temp];
}
foodpage=0;
while(p)//计算需要多少面
{
foodpage++;
p-=12;
if(p<=0) break;
if(p>0&&p<=12)
{
foodpage++;
break;
}
}
// free(pBuf);
}
*/
void CLookUp1Dlg::ShowFoodName()//打印菜名字
{
int i;
int No;
countfood=0;
for(i=0,No=0;strOnefood.GetAt(i)!='\0';i++)
{
if(strOnefood.GetAt(i)=='@'&&strOnefood.GetAt(i+1)!='*')
{
btnfoodname[No].Empty();
for(;strOnefood.GetAt(i)!='\n';)
{
btnfoodname[No]+=strOnefood.GetAt(i);
i++;
}
btnfoodname[No].TrimLeft(_T("@"));
i=i+1;
No++;
countfood++;
}
}
for(i=0,No=0;strOnefood.GetAt(i)!='\0';i++)
{
btnfoodtedian[No].Empty();
if(strOnefood.GetAt(i)=='@'&&strOnefood.GetAt(i+1)=='#')
{
for(;strOnefood.GetAt(i)!='\n';)
{
btnfoodtedian[No]+=strOnefood.GetAt(i);
i++;
}
btnfoodtedian[No].TrimLeft(_T("@#"));
i=i+1;
No++;
}
}
for(i=0,No=0;strOnefood.GetAt(i)!='\0';i++)
{
if(strOnefood.GetAt(i)=='@'&&strOnefood.GetAt(i+1)=='*')
{
btnfoodpoint[No].Empty();
for(;strOnefood.GetAt(i)!='\n';)
{
btnfoodpoint[No]+=strOnefood.GetAt(i);
i++;
}
btnfoodpoint[No].TrimLeft(_T("@*"));
i=i+1;
No++;
}
}
for(i=0,No=0;strOnefood.GetAt(i)!='\0';i++)
{
if(strOnefood.GetAt(i)=='@'&&strOnefood.GetAt(i+1)=='*'&&strOnefood.GetAt(i+2)=='*')
{
btnfoodmethod[No].Empty();
for(;strOnefood.GetAt(i)!='\n';)
{
btnfoodmethod[No]+=strOnefood.GetAt(i);
i++;
}
btnfoodmethod[No].TrimLeft(_T("@**"));
i=i+1;
No++;
}
}
SetButtonText();
// CString num;
// num.Format(TEXT("num=%d"),countfood);
// MessageBox(num);
// MessageBox(btnfoodname[countfood-1]);
// MessageBox(btnfoodname[countfood-2]);
}
/* if(pagenow<=foodpage)
{
Clear();
pag=(pagenow-1)*12;
if(pag<=lastpageNumber)
{
foodnamecount[1]=pag;
CString str=foodname[pag];
m_lookupButton1.SetWindowText(str);
pag++;
}
else
foodnamecount[1]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[2]=pag;
CString str=foodname[pag];
m_lookupButton2.SetWindowText(str);
pag++;
}
else
foodnamecount[2]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[3]=pag;
CString str=foodname[pag];
m_lookupButton3.SetWindowText(str);
pag++;
}
else
foodnamecount[3]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[4]=pag;
CString str=foodname[pag];
m_lookupButton4.SetWindowText(str);
pag++;
}
else
foodnamecount[4]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[5]=pag;
CString str=foodname[pag];
m_lookupButton5.SetWindowText(str);
pag++;
}
else
foodnamecount[5]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[6]=pag;
CString str=foodname[pag];
m_lookupButton6.SetWindowText(str);
pag++;
}
else
foodnamecount[6]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[7]=pag;
CString str=foodname[pag];
m_lookupButton7.SetWindowText(str);
pag++;
}
else
foodnamecount[7]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[8]=pag;
CString str=foodname[pag];
m_lookupButton8.SetWindowText(str);
pag++;
}
else
foodnamecount[8]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[9]=pag;
CString str=foodname[pag];
m_lookupButton9.SetWindowText(str);
pag++;
}
else
foodnamecount[9]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[10]=pag;
CString str=foodname[pag];
m_lookupButton10.SetWindowText(str);
pag++;
}
else
foodnamecount[10]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[11]=pag;
CString str=foodname[pag];
m_lookupButton11.SetWindowText(str);
pag++;
}
else
foodnamecount[11]=-1;
if(pag<=lastpageNumber)
{
foodnamecount[12]=pag;
CString str=foodname[pag];
m_lookupButton12.SetWindowText(str);
pag++;
}
else
foodnamecount[12]=-1;
}
//else pagenow--;
}
*/
/*
void CLookUp1Dlg::OnLookupButton7()
{
// TODO: Add your control notification handler code here
if( foodnamecount[7]>=0)
{
CLookUp2Dlg LookUp2Dlg;
LookUp2Dlg.pagnow=foodnamecount[7];
LookUp2Dlg.lastpageNumber=lastpageNumber;
int i=0;
while(i<=lastpageNumber)
{
LookUp2Dlg.page[i]=page[i];
LookUp2Dlg.foodname[i]=foodname[i];
LookUp2Dlg.namepath[i]=FilenamePath[i];
i++;
}
LookUp2Dlg.DoModal();
}
}
void CLookUp1Dlg::OnLookupButton2()
{
// TODO: Add your control notification handler code here
if( foodnamecount[2]>=0)
{
CLookUp2Dlg LookUp2Dlg;
LookUp2Dlg.pagnow=foodnamecount[2];
LookUp2Dlg.lastpageNumber=lastpageNumber;
int i=0;
while(i<=lastpageNumber)
{
LookUp2Dlg.page[i]=page[i];
LookUp2Dlg.foodname[i]=foodname[i];
LookUp2Dlg.namepath[i]=FilenamePath[i];
i++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -