📄 order.cpp
字号:
// Order.cpp : implementation file
//
#include "stdafx.h"
#include "OrderDishsSys.h"
#include "Order.h"
//
#include"Dish.h"
#include"afxtempl.h"
//
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COrder dialog
//
/*-------------------------------------*/
CList<Dish,Dish&> MList,MList2;
Dish d;
/*-------------------------------------*/
COrder::COrder(CWnd* pParent /*=NULL*/)
: CDialog(COrder::IDD, pParent)
{
//{{AFX_DATA_INIT(COrder)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void COrder::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COrder)
DDX_Control(pDX, IDC_LIST2, m_list2);
DDX_Control(pDX, IDC_LIST1, m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COrder, CDialog)
//{{AFX_MSG_MAP(COrder)
ON_BN_CLICKED(IDC_ORDERDISH, OnOrderdish)
ON_BN_CLICKED(IDC_WITHDRAW, OnWithdraw)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COrder message handlers
BOOL COrder::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_list.SetExtendedStyle(0x21);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0," 菜名",LVCFMT_CENTER,95);
m_list.InsertColumn(1,"价格",LVCFMT_CENTER,60);
m_list.InsertColumn(2,"数量",LVCFMT_CENTER,45);
/*-----------------------------------------------------*/
/*test
CString s="tad";
if(1)
{
int nItem=m_list.InsertItem(0xffff,(LPCTSTR)(s),1);
m_list.SetItemText(nItem,1,(LPCTSTR)("23"));
}
*/
List1();
/*-----------------------------------------------------*/
m_list2.SetExtendedStyle(0x21);
m_list2.SetBkColor(RGB(247,247,255));
m_list2.SetTextColor(RGB(0,0,255));
m_list2.SetTextBkColor(RGB(247,247,255));
m_list2.InsertColumn(0," 菜名",LVCFMT_CENTER,95);
m_list2.InsertColumn(1,"价格",LVCFMT_CENTER,60);
m_list2.InsertColumn(2,"数量",LVCFMT_CENTER,45);
//
MList2.RemoveAll();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COrder::List1()
{
m_list.DeleteAllItems();
int k=0;
int nItem=0;
CString str;
POSITION pos = MList.GetHeadPosition();
for(int i=0;i<MList.GetCount();i++)
{
nItem=m_list.InsertItem(0xffff,(LPCTSTR)(MList.GetAt(pos).GetName()),1);
str.Format(_T("%d"),MList.GetAt(pos).GetPrice());
m_list.SetItemText(nItem,1,(LPCTSTR)(str));
str.Format(_T("%d"),MList.GetAt(pos).GetQuantity());
m_list.SetItemText(nItem,2,(LPCTSTR)(str));
MList.GetNext(pos);
}
}
void COrder::List2()
{
m_list2.DeleteAllItems();
int k=0;
int nItem=0;
CString str;
POSITION pos = MList2.GetHeadPosition();
//
/*-----------------------------------------------------*/
/*test
for(int i1=0;i1<MList2.GetCount();i1++)
{
AfxMessageBox(MList2.GetAt(pos).GetName());
MList2.GetNext(pos);
}
pos = MList2.GetHeadPosition();
*/
/*-----------------------------------------------------*/
for(int i=0;i<MList2.GetCount();i++)
{
nItem=m_list2.InsertItem(0xffff,(LPCTSTR)(MList2.GetAt(pos).GetName()),1);
str.Format(_T("%d"),MList2.GetAt(pos).GetPrice());
m_list2.SetItemText(nItem,1,(LPCTSTR)(str));
str.Format(_T("%d"),MList2.GetAt(pos).GetQuantity());
m_list2.SetItemText(nItem,2,(LPCTSTR)(str));
MList2.GetNext(pos);
}
nItem=m_list2.InsertItem(0xffff,(LPCTSTR)("总价"),1);
int sum=0,shu=0;
pos = MList2.GetHeadPosition();
for(int i=0;i<MList2.GetCount();i++)
{
sum=sum+MList2.GetAt(pos).GetPrice();
shu=shu+MList2.GetAt(pos).GetQuantity();
MList2.GetNext(pos);
}
str.Format(_T("%d"),sum);
m_list2.SetItemText(nItem,1,(LPCTSTR)(str));
str.Format(_T("%d"),shu);
m_list2.SetItemText(nItem,2,(LPCTSTR)(str));
}
//
#include "OrderCtrl.h"
void COrder::OnOrderdish()
{
// TODO: Add your control notification handler code here
POSITION pos = m_list.GetFirstSelectedItemPosition();
if(pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
CString str1 =m_list.GetItemText(nItem,0);
COrderCtrl ctrl;
ctrl.OrderDish(str1,MList,MList2,d);
List1();
List2();
//
}
else
AfxMessageBox("请选择要点的菜!");
}
//
#include "OrderCtrl.h"
void COrder::OnWithdraw()
{
// TODO: Add your control notification handler code here
POSITION pos = m_list2.GetFirstSelectedItemPosition();
if(pos)
{
int nItem = m_list2.GetNextSelectedItem(pos);
CString str1 =m_list2.GetItemText(nItem,0);
CString str2 =m_list2.GetItemText(nItem,1);
CString str3 =m_list2.GetItemText(nItem,2);
COrderCtrl ctrl;
ctrl.Withdraw(str1,str2,str3,MList,MList2,d);
List1();
List2();
}
else
AfxMessageBox("请选择要撤消的菜!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -