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;}}}

MFC基于对话框的商场交易软件实现相关推荐

  1. MFC基于对话框添加图片控件

    建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...

  2. VS2013 MFC基于对话框编程(创建工程)

    一.新建MFC项目 选择:基于对话框 MFC的使用:  在共享DLL中使用MFC (程序运行需要dll)  在静态库中使用MFC (程序较大,运行时不需要dll)  设置MFC程序主框架样式和标题  ...

  3. C++小知识——VS2013 MFC基于对话框编程

    转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/53173966 前言 一直利用Qt库做Ui设计,但针对于一些MFC项目, ...

  4. MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口

    一.创建基于对话框的应用程序框架 1.选择菜单项文件->新建->项目,弹出"新建项目"对话框. 2.直接选择"MFC应用程序"或左侧面板中模板的Vi ...

  5. 棋类对战小游戏(VS2012 MFC基于对话框)

    1需求分析 二打一棋用户需要的功能如下: (1)移动棋子:玩家通过鼠标点击能够实现棋子的移动,同时保证每次只能移动一格,且只能移动到未被占领的格子上. (2)吃掉棋子:同一条线上的己方两个棋子可以吃掉 ...

  6. C++MFC基于对话框的编程——模态(非模态)对话框

    目录 一.添加MFC功能 二.创建基于MFC的应用程序框架 三.初识界面 四.上案例 1.拖控件button(两个) 2.改控件名字 2.1改名方法1 2.2改名方法2 3.添加两个新的对话框(Dia ...

  7. MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)

    MFC中比较重要的一部分学习内容即是绘图,而绘图时我们会发现如果想插入一张图片而又不想要图片的背景,或者已经把图片的背景用Ps去掉了,但是在MFC窗口中显示图片的时候又有了白色的背景,这个时候就可以使 ...

  8. 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突

    发现问题: 里面一堆乱七八槽的啥几把玩意儿? 修改项目名称为英文.欧了~ 总结:项目名称别用中文!!!虽然我也不知道为啥不能用

  9. VS如何新建一个基于对话框的MFC工程并添加按钮

    学习MFC的初学者,入门的步骤很重要,新建一个基于对话框的MFC应用程序,并通过拖拉按钮等,初步搭建自己的MFC工程. 工具/原料 笔记本电脑 VS2010 方法/步骤 打开VS2010,并新建MFC ...

最新文章

  1. 计算机网络(二)计算机网络 体系结构和OSI参考模型 | 思维导图
  2. excel转html放在tomcat,Excel转web!把excel在线打开??
  3. MySQL InnoDB存储引擎
  4. 一文理清Http2.0
  5. 解决方案:数据同步Canal
  6. Verilog状态机的编写学习
  7. python怎么分析各个时间段的数据_Python数据分析:Python对Word数据的读写
  8. 微课|中学生可以这样学Python(7.3.1节):私有成员与公有成员
  9. web pack的使用事项
  10. 一年前端的迷惑,深度还是广度
  11. 设置Linux中的Mysql不区分表名大小写
  12. mysql事务隔离级别回顾
  13. Python快速下载M3U8电影
  14. mysql schemata_SCHEMATA · xiaoboluo768/mysql-system-schema Wiki · GitHub
  15. matlab怎么新建文件运行不了,关于:Matlab中直接双击fig文件运行出错,而从.m文件运行却不会出错问题的一点心得...
  16. 2019Java面试题
  17. UE4 相机对焦学习笔记
  18. Autoware:ndt_mapping节点
  19. Android Alpha 更改图片透明度
  20. imageJ基本操作

热门文章

  1. LeetCode 638. 大礼包(无限背包DP)
  2. seaborn绘图入门2(distplot+kdeplot+jointplot+set_style)
  3. LeetCode 406. 根据身高重建队列(排序)
  4. 聚类方法(Clustering)
  5. 程序员面试金典 - 面试题 04.03. 特定深度节点链表(BFS)
  6. LintCode 1753. 写作业(二分查找)
  7. LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)
  8. 剑指Offer - 面试题38. 字符串的排列(全排列,排序,回溯+剪枝)
  9. 全栈深度学习第7期: 研究方向这么多,哪些是有有趣又潜力的呢?
  10. BAT Java面试完整汇总:面试准备(心态+简历)+面试题目+6条面试经验