MFC基于对话框的商场交易软件实现

 

                           

                                 

                                                           

                                      

void CHomeViewDlg::OnClickedBtGuke()
{// TODO: 在此添加控件通知处理程序代码CUserLoginDlg dlg;//注册窗框口类对象User user;user.m_UserType = _T("顾客");dlg.SetUser(user);dlg.DoModal();//进入注册窗口窗口
}void CHomeViewDlg::OnClickedBtShangjia()
{// TODO: 在此添加控件通知处理程序代码CUserLoginDlg dlg; //注册窗框口类对象User user;user.m_UserType = _T("商家");dlg.SetUser(user);dlg.DoModal();//进入注册窗口窗口
}
//注意: CUserLoginDlg dlg为局部对象,上述函数执行完则对象释放。

                                        

BOOL CUserLoginDlg::SetUser(User user)
{m_CurrentUser.m_UserType= user.m_UserType;return TRUE;
}
//新用户注册按钮响应函数
void CUserLoginDlg::OnClickedRegister()
{// TODO: 在此添加控件通知处理程序代码CRegisterDlg dlg;//注册界面if (dlg.DoModal() == IDOK){m_CurrentUser.m_Pwd = dlg.m_zcPwd;m_CurrentUser.m_TelNum = dlg.m_zcTel;for (UINT i = 0; i < m_User.GetSize(); i++){if (m_User[i].m_UserType == m_CurrentUser.m_UserType&&m_CurrentUser.m_UserType != _T("")){if (m_User[i].m_TelNum == m_CurrentUser.m_TelNum){MessageBox(_T("该号码已注册!"));return;}}}m_User.Add(m_CurrentUser);//注册用户存储在数组m_User中//用户数据序列化存储在文件中CString  count;count.Format(_T("%d"),m_User.GetSize());CFile o;if (o.Open(_T("userdata.txt"), CFile::modeWrite)){o.SeekToEnd();CArchive ar(&o, CArchive::store);CString save = _T("");CString s = _T(",");CString l = _T("\r\n");			save += count+s+m_CurrentUser.m_TelNum +s+ m_CurrentUser.m_Pwd +s+ m_CurrentUser.m_UserType+l;ar <<save;ar.Close();o.Close();}	MessageBox(_T("注册成功!"));}
}//登录按钮响应函数
void CUserLoginDlg::OnClickedLogin()
{// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);
//用于将输入编辑框的数据更新到编辑框绑定的变量中,即更新m_logTel和m_LogPwd的值//保存当前注册用户m_CurrentUser.m_TelNum = m_logTel;m_CurrentUser.m_Pwd = m_LogPwd;if (m_CurrentUser.m_TelNum == _T("")){MessageBox(_T("请输入密码账号密码!"));return;}UINT i = 0;for (i; i < m_User.GetSize(); i++){if (m_User[i].m_TelNum == m_logTel&&m_User[i].m_Pwd == m_LogPwd){//账号密码匹配,进入主页界面CMainGUIDlg dlg;dlg.SetUser(m_CurrentUser);dlg.DoModal();break;}else if (m_User[i].m_TelNum == m_logTel&&m_User[i].m_Pwd != m_LogPwd){MessageBox(_T("密码错误!"));return;}}if(i== m_User.GetSize())MessageBox(_T("请先注册!"));
}

 

BOOL CUserLoginDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化CFile o;		if (o.Open(_T("userdata.txt"), CFile::modeRead)){CArchive ar(&o, CArchive::load);CString line=NULL;do{		ar.ReadString(line);		//读出一行数据line.TrimRight();line.TrimLeft();		//去除左右空格if (line == _T(""))break;//数据项拆分,构造数据对象User  u;AfxExtractSubString(u.m_TelNum, line,1, ',');AfxExtractSubString(u.m_Pwd, line,2, ',');AfxExtractSubString(u.m_UserType, line,3, ',');m_User.Add(u);} while (TRUE);ar.Close();o.Close();}return TRUE; }

 

                                

                                                         

BOOL CMainGUIDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化//设置标签页页头,根据用户类型动态设置m_tablctrl.InsertItem(0, _T("首页"));if (m_user.m_UserType== _T("商家")){m_tablctrl.InsertItem(1, _T("我的店铺"));m_tablctrl.InsertItem(2, _T("我的订单"));}else if (m_user.m_UserType == _T("顾客")){m_tablctrl.InsertItem(1, _T("我的房间"));m_tablctrl.InsertItem(2, _T("购物车"));}//标签控件位置设置CRect si;m_tablctrl.GetClientRect(&si);CRect it;m_tablctrl.GetItemRect(0, it);si.top += it.top + 20;si.left += 5;si.bottom -= 5;si.right -= 5;m_FirstPage.Create(IDD_FIRST_PAGE, &m_tablctrl);m_FirstPage.MoveWindow(&si);if (m_user.m_UserType == _T("商家")){
//子对话框创建,根据对话框ID将标签对象和首页对话框绑定m_Shop.Create(IDD_DIALOG_SHOP, &m_tablctrl);m_Shop.SetShopId(m_user.m_TelNum);//子对话框移动到正确位置m_Shop.MoveWindow(&si);//}else if (m_user.m_UserType == _T("顾客")){
//子对话框创建,根据对话框ID将标签对象和首页对话框绑定m_ShoppingCart.Create(IDD_SHOPPING_CART, &m_tablctrl);m_ShoppingCart.MoveWindow(&si);}m_FirstPage.ShowWindow(SW_SHOW);m_tablctrl.SetCurFocus(0);return TRUE; }void CMainGUIDlg::OnSelchangeTabPage(NMHDR *pNMHDR, LRESULT *pResult)
{// TODO: 在此添加控件通知处理程序代码switch (m_tablctrl.GetCurSel())//根据鼠标选择的焦点,动态设置标签页{case 0:if (m_user.m_UserType == _T("商家")){m_FirstPage.ShowWindow(SW_SHOW);m_Shop.ShowWindow(SW_HIDE);}else if (m_user.m_UserType == _T("顾客")){m_FirstPage.ShowWindow(SW_SHOW);m_ShoppingCart.ShowWindow(SW_HIDE);m_FirstPage.SetFocus();}break;case 1:if (m_user.m_UserType == _T("商家")){m_FirstPage.ShowWindow(SW_HIDE);m_Shop.ShowWindow(SW_SHOW);m_Shop.SetFocus();m_Shop.m_treectrl.Invalidate();}else if (m_user.m_UserType == _T("顾客")){m_FirstPage.ShowWindow(SW_HIDE);m_ShoppingCart.ShowWindow(SW_HIDE);}break;case 2:if (m_user.m_UserType == _T("商家")){m_FirstPage.ShowWindow(SW_HIDE);m_Shop.ShowWindow(SW_HIDE);}else if (m_user.m_UserType == _T("顾客")){m_FirstPage.ShowWindow(SW_HIDE);m_ShoppingCart.ShowWindow(SW_SHOW);m_ShoppingCart.SetFocus();}break;default:break;}*pResult = 0;
}

BOOL CFirstPageDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化		m_comboBox.AddString(_T("产品类别"));m_ProductTypeArray.Add(_T("现代家具"));m_ProductTypeArray.Add(_T("后现在家具"));m_ProductTypeArray.Add(_T("欧式古典家具"));m_ProductTypeArray.Add(_T("美式家具"));m_ProductTypeArray.Add(_T("中式古典家具"));m_ProductTypeArray.Add(_T("新古典家具"));m_ProductTypeArray.Add(_T("新装饰家具"));for (UINT i = 0; i < m_ProductTypeArray.GetSize(); i++){m_comboBox.InsertString(i+1, m_ProductTypeArray[i]);}m_comboBox.SetCurSel(0);return TRUE; 
}void CFirstPageDlg::OnSelchangeCombo()
{// TODO: 在此添加控件通知处理程序代码	
//设置选择的项目为选中状态m_comboBox.SetCurSel(m_comboBox.GetCurSel());
}//查找商品函数代码
void CFirstPageDlg::OnClickedBtFind()
{// TODO: 在此添加控件通知处理程序代码CString Type;if (CB_ERR != m_comboBox.GetCurSel())//判段显示项目是否在组合框中{m_comboBox.GetLBText(pos, Type);//获取选中项目的文本MessageBox(Type);}else{//若为输入的文本,则通过该方式获取输入的文本m_comboBox.GetWindowText(Type);MessageBox(Type);}
}

BOOL CShopDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化HTREEITEM hRoot; // 根节点HTREEITEM hgood;HTREEITEM h;hRoot = m_treectrl.InsertItem(_T("产品分类"), 0, 0);hgood = m_treectrl.InsertItem(_T("现代家具"), 1, 1, hRoot, TVI_LAST);	h = m_treectrl.InsertItem(_T("床"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("床头柜"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("化妆台"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("妆凳"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("衣柜"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("床尾凳"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("穿衣镜"), 1, 1, hgood, TVI_LAST);hgood = m_treectrl.InsertItem(_T("新装饰家具"), 1, 1, hRoot, TVI_LAST);h = m_treectrl.InsertItem(_T("沙发"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("茶几"), 1, 1, hgood, TVI_LAST);h = m_treectrl.InsertItem(_T("边几(角几)"), 1, 1, hgood, TVI_LAST);return TRUE;  // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}void CShopDlg::OnClickedBtAddProduct()
{// TODO: 在此添加控件通知处理程序代码CInsertProductDlg dlg;CommodityInfo g;if (dlg.DoModal() == IDOK){UpdateData(TRUE);g.m_Title = dlg.m_Title;g.m_Id = dlg.m_Id;g.m_Price = dlg.m_Price;//g.m_MainPic = dlg.m_MainFigure;g.m_Host = m_UserId;if (dlg.m_Type_One != _T("")){g.m_Type_One = dlg.m_Type_One;}if (dlg.m_Type_Two != _T("")){g.m_Type_Two = dlg.m_Type_Two;}else{g.m_Type_One =_T("null");g.m_Type_Two = _T("null");}m_shopCommodity.Add(g);}
}BOOL CShopDlg::SetShopId(CString id)
{m_UserId = id;return TRUE;
}

BOOL CShoppingCartDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);LONG lStyle;lStyle = GetWindowLong(m_listctrl.m_hWnd, GWL_STYLE);//获取当前窗口stylelStyle &= ~LVS_TYPEMASK;                                                     //清除显示方式位lStyle |= LVS_REPORT;                                                             //设置styleSetWindowLong(m_listctrl.m_hWnd, GWL_STYLE, lStyle);//设置styleDWORD dwStyle = m_listctrl.GetExtendedStyle();dwStyle |= LVS_EX_FULLROWSELECT;        //选中某行使整行高亮(只适用与report风格的listctrl)dwStyle |= LVS_EX_GRIDLINES;                   //网格线(只适用与report风格的listctrl)dwStyle |= LVS_EX_CHECKBOXES;              //item前生成checkbox控件m_listctrl.SetExtendedStyle(dwStyle);         //设置扩展风格m_listctrl.InsertColumn(0, _T("商品名称"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(1, _T("价格"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(2, _T("参数"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(3, _T("参数"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(4, _T("参数"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(5, _T("参数"), LVCFMT_LEFT, 150, 40);m_listctrl.InsertColumn(6, _T("参数"), LVCFMT_LEFT, 150, 40);for (UINT i = 0; i < 20; i++){m_listctrl.InsertItem(i,_T("null"));for (UINT j = 0; j < 7; j++){m_listctrl.SetItemText(i, j,_T("null"));}}return TRUE;  // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}void CShoppingCartDlg::OnClickList(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// TODO: 在此添加控件通知处理程序代码POSITION pos = m_listctrl.GetFirstSelectedItemPosition();if (pos != NULL){while (pos){int nItem = m_listctrl.GetNextSelectedItem(pos);}}*pResult = 0;
}

BOOL CInsertProductDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化m_ProductOneTypeArray.Add(_T("现代家具"));m_ProductOneTypeArray.Add(_T("后现在家具"));m_ProductOneTypeArray.Add(_T("欧式古典家具"));m_ProductOneTypeArray.Add(_T("美式家具"));m_ProductOneTypeArray.Add(_T("中式古典家具"));m_ProductOneTypeArray.Add(_T("新古典家具"));m_ProductOneTypeArray.Add(_T("新装饰家具"));m_ProductTwoTypeArray.Add(_T("沙发"));m_ProductTwoTypeArray.Add(_T("茶几"));m_ProductTwoTypeArray.Add(_T("边几(角几)"));m_ProductTwoTypeArray.Add(_T("床头柜"));m_ProductTwoTypeArray.Add(_T("化妆台"));m_ProductTwoTypeArray.Add(_T("妆凳"));m_ProductTwoTypeArray.Add(_T("衣柜"));m_ProductTwoTypeArray.Add(_T("床尾凳"));m_ProductTwoTypeArray.Add(_T("穿衣镜"));for (UINT i = 0; i < m_ProductOneTypeArray.GetSize(); i++){m_combox_One.InsertString(i , m_ProductOneTypeArray[i]);}for (UINT i = 0; i < m_ProductTwoTypeArray.GetSize(); i++){m_combox_Two.InsertString(i, m_ProductTwoTypeArray[i]);}return TRUE;  // return TRUE unless you set the focus to a control
}void CInsertProductDlg::OnSelchangeComboCategoryOne()
{// TODO: 在此添加控件通知处理程序代码m_combox_One.SetCurSel(m_combox_One.GetCurSel());CString Type= _T("");if (CB_ERR == m_combox_One.GetCurSel()){MessageBox(_T("选择产品一级分类!"));return;}else{int pos = m_combox_One.GetCurSel();m_combox_One.GetLBText(pos, Type);if (Type!=_T("")){m_Type_One = Type;}}}void CInsertProductDlg::OnSelchangeComboCategoryTwo()
{// TODO: 在此添加控件通知处理程序代码m_combox_One.SetCurSel(m_combox_Two.GetCurSel());CString Type = _T("");if (CB_ERR == m_combox_Two.GetCurSel()){MessageBox(_T("选择产品一级分类!"));return;}else{int pos = m_combox_Two.GetCurSel();m_combox_Two.GetLBText(pos, Type);if (Type != _T("")){m_Type_Two = Type;}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPU的发展历程、未来趋势及研制实践

来源&#xff1a;文章转载自期刊《微纳电子与智能制造》&#xff0c;作者&#xff1a;熊庭刚摘要凭借GPU强大的计算能力&#xff0c;超级计算机在数据处理、物理模拟、天气预测、现代制药、基因测序、先进制造、人工智能、密码分析等方面都有着广泛的应用。在2020年的新冠肺炎疫…

Mysql Explain的简单使用

Mysql Explain 主要重要的字段有上面红色方框圈出来的那几个。 type: 连接类型&#xff0c;一个好的SQL语句至少要达到range级别&#xff0c;杜绝出现all级别。key: 使用到的索引名&#xff0c;如果没有选择索引&#xff0c;值是NULL。可以采取强制索引方式。key_len: 索引长度…

Java-绘图相关技术

//学了太多的基础&#xff0c;感觉一直没太大的进步&#xff0c;因此&#xff0c;我决定增加以下学习的难度&#xff0c;以此来增加自己的学习兴趣&#xff1b; /*** Java 绘图相关技术的学习*Graphics类相关技术知识&#xff1a;* 1.Graphics类是所有图像绘图的基类&#xf…

20210712未来智能实验室收录资料

整理&#xff1a;未来智能实验室20210712未来智能实验室收录资料特别推荐&#xff1a;置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》&#xff0c;从城市大脑的起源和理论基础&#xff1b;城市大脑的定…

RISC-V生态未来的三种可能~

来源&#xff1a;嵌入式资讯精选因为x86 架构与 Arm 架构商业使用都要付费&#xff0c;因此&#xff0c;RISC-V开源具有很大优势。今天就来说说 RISC-V 生态的内容。关于RISC-VRISC&#xff1a;Reduced Instruction Set Computer&#xff0c;即精简指令集计算机。RISC-V是基于R…

java-图像的几何变换

/** Java 绘图相关技术的学习*Graphics类相关技术知识&#xff1a; 1.图像的几何变换图像翻转&#xff1a;使用另一个重载的drawImage(Image img,int x_1,int y_1,目标矩形的第一坐标int x_2,int y_2,目标矩形的第二坐标int x1,int y1,源矩形的第一坐标int x2,int y2,源矩形的第…

VS Code配置C/C++

VS Code 配置C/C  准备工作 Mingw-w64下载&#xff0c;在vscode中&#xff0c;点击帮助文档&#xff0c;进入如下界面。 在左侧选择CMingw-w64 onWindows,进入如下界面。可以参考文档进行配置。 点击文档中的mingw-w64链接进入如下界面。 点击黄色区域链接进入到里面…

人脑启发AI设计:让神经网络统一翻译语音和文本

来源&#xff1a;图灵人工智能作者&#xff1a;Glaciohound编辑&#xff1a;陈彩娴能够统一地理解语音和文本&#xff0c;是人类能够形成通用语言能力的重要原因。那么&#xff0c;人工智能是否也能如此&#xff1f;最近&#xff0c;来自字节跳动和UIUC的研究人员借鉴这一思路&…

32 bit 与 64 bit 程序(2)比较

32 bit 与 64 bit 程序&#xff08;2&#xff09;区别 由于操作系统内存分配的不同&#xff0c;导致软件开发过程中&#xff0c;需要编译不同版本的软件。 几个重要概念&#xff1a; &#xff08;1&#xff09;这里所说的的32位与64位程序&#xff0c;是指经过编译器编译后的可…

2021世界人工智能大会AI Debate:图神经网络是否是实现认知智能的关键?

来源&#xff1a;学术头条2021年7月10日&#xff0c;WAIC&#xff08;2021世界人工智能大会&#xff09;“图神经网络与认知智能前沿技术论坛”在上海世博中心成功举办。清华大学计算机科学与技术系教授李涓子&#xff0c;复旦大学计算机科学技术学院教授黄萱菁&#xff0c;清华…

Tensorflow深度学习应用(筑基篇)

筑基篇 #codinggbk1.张量 用于描述数据&#xff0c;可以理解为多维数组,包含张量的名字&#xff0c;阶数&#xff0c;形状数值类型. Tensor("Add:0", shape(m,n,k), dtypefloat32),表示节点名为Add,0代表第0个输出&#xff0c;shape表示为MxNxK维的数组&…

WPF中自动增加行(动画)的TextBox

WPF中自动增加行&#xff08;动画&#xff09;的TextBox 原文:WPF中自动增加行&#xff08;动画&#xff09;的TextBoxWPF中自动增加行&#xff08;动画&#xff09;的TextBox WPF中的Textbox控件是可以自动换行的&#xff0c;只要设置TextWrapping属性为”Wrap”即可&#xff…

基因婴儿事未了!人类将在2031年开始实现永生?

来源:WPR前段时间&#xff0c;中国首例“基因编辑”婴儿事件闹得沸沸扬扬&#xff0c;这件事也发酵到了国外&#xff0c;不到一天&#xff0c;各路外媒全部刷屏了。在这些外媒报道里&#xff0c;最有意思的要数《纽约时报》杂志了。他们就“基因编辑”问题&#xff0c;请到了作…

Tensorflow深度学习应用(进阶篇)

#codinggbk进阶篇相关数据&#xff1a;标签&#xff1a;要预测的事物特征&#xff1a;用于描述数据的输入变量样本&#xff1a;数据的特定实例有标签的样本&#xff1a;{特征&#xff0c;标签}无标的样本&#xff1a;{特征&#xff0c;...}模型&#xff1a;将样本映射到预测标签…

Java之Synchronized与锁升级

Synchronized与锁升级 一、概述 在多线程并发编程中 synchronized 一直是元老级角色&#xff0c;很多人都会称呼它为重量级锁。但是&#xff0c;随着 Java SE 1.6 对 synchronized 进行了各种优化之后&#xff0c;有些情况下它就并不那么重了。 本文详细介绍 Java SE 1.6 中为…

机器学习算法

最近&#xff0c;机器学习岗位越来越火爆&#xff0c;那么自然对算法的一些能力要求也是越来越高&#xff0c;想要在求职者中脱颖而出&#xff0c;起步自然非常重要。 我和小伙伴们一起研讨了 2019 年校招的一些算法面试&#xff0c;有些是亲自经历的&#xff0c;也有伙伴分享的…

深度强化学习在智能城市领域应用介绍

来源&#xff1a;海豚数据科学实验室深度强化学习是近年来热起来的一项技术。深度强化学习的控制与决策流程必须包含状态&#xff0c;动作&#xff0c;奖励是三要素。在建模过程中&#xff0c;智能体根据环境的当前状态信息输出动作作用于环境&#xff0c;然后接收到下一时刻状…

Tensorflow深度学习应用(进阶篇)-回归(函数拟合训练)-可视化

#codinggbk进阶篇&#xff1a;多元回归&#xff1a;建模问题&#xff1a;Yx1xx1x2xw2x3xw3...xnxwnb,矩阵简化表示YXWbnumpy库基础&#xff1a;整型的一个数字&#xff0c; 不能取得其shape&#xff08;维度&#xff09;&#xff0c;通过np.array()可以将其转换成一个标量&…

Tensorflow深度学习应用(进阶篇)-1

#codinggbk 逻辑回归&#xff1a;逻辑回归需要将输出控制在[0,1]之间&#xff0c;可以使用函数将值映射在[0,1]之间Sigmod函数&#xff0c;逻辑回归一般采用对数损失函数&#xff1b;from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei] #设置显示绘图显示中文 mp…

​20210716未来智能实验室收录资料

20210716未来智能实验室收录资料特别推荐&#xff1a;置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》。本期收录前沿科技进展材料52篇1.《科学》&#xff1a;媲美AlphaFold2的蛋白质结构预测新工具问世…