MyStore
发布日期:2021-09-20 08:56:05 浏览次数:9 分类:技术文章

本文共 2468 字,大约阅读时间需要 8 分钟。

MyStore 管理系统

功能

  • 连接MySQL管理信息
  • 封装MySQL接口自动完成SQL语句拼接并执行
  • 窗口界面支持优雅的操作
  • 登录系统不同权限不同界面
  • 对员工信息的增删改查
  • 对商品信息的增删改查
  • 可视化收银界面

项目概述

项目基于Duilib第三方库,以及对MySQL等函数的封装实现的一个超市商品及员工管理工具

XML部分控件

控件名 作用
VerticalLayout 纵向布局控件
HorizaontalLayout 水平布局控件
Button 按钮控件,响应点击消息
Option和TabLayout 两控件一起使用实现多页面
List 在界面中显示一个列表
Edit 显示一个编辑框
Label/Text 放文字信息
Control 所用控件的基类,可以用来放图片
ComboBox 下拉框控件

消息响应类型

消息 说明 Sender
click 鼠标点击 CButtonUI
selectchanged 变更选项 COptionUI

消息处理机制

1.注册消息处理函数

在CWindowWnd的Create()函数(创建窗口函数)中调用RegisterSuperclass(),注册消息回调函数(__WndProc);
2.消息分发
消息回调函数(处理所有系统发送的消息),通过调用HandleMessage()对消息进行分发
3.消息循环
在CPaintManagerUI类的MessageLoop处理消息循环;
接收到消息后,进入消息回调函数(__WndProc)
4.处理消息
通过CPaintManagerUI:: SendNotify回调控件注册的事件,最后通过Notify获取控件名称并进入相应的函数

部分函数实现

管理员窗口Notify的实现

void MainWnd::Notify(TNotifyUI& msg) {
CDuiString StrName = msg.pSender->GetName(); if (msg.sType == _T("click")) {
if (StrName == _T("BTN_CLOSE")) {
Close(); } else if (StrName == _T("BTN_MIN")) {
SendMessage(WM_SYSCOMMAND, SC_MINIMIZE,0); } else if (StrName == _T("BTN_SELECT")) {
SelectEmployeeInfo(); } else if (StrName == _T("BTN_DELETE")) {
DeleteEmployeeInfo(); } else if (StrName == _T("BTN_UPDATE")) {
UpDateEmployeeInfo(); } else if (StrName == _T("BTN_INSERT")) {
InsertEmployeeInfo(); } else if (StrName == _T("BTN_RECORD")) {
MessageBox(NULL, _T("record"), _T("cashier"), IDOK); } else if (StrName == _T("BTN_GOODS_SELECT")) {
SelectGoodsInfo(); } else if (StrName == _T("BTN_GOODS_DELETE")) {
DeleteGoodsInfo(); } else if (StrName == _T("BTN_GOODS_INSERT")) {
InsertGoodsInfo(); } else if (StrName == _T("BTN_GOODS_UPDATE")) {
UpDateGoodsInfo(); } } else if (msg.sType == _T("selectchanged")) {
CTabLayoutUI* pTab =(CTabLayoutUI*)m_PaintManager.FindControl(_T("tablayout")); if (StrName == _T("OPTION_EMPLOYEE")) {
pTab->SelectItem(0); } else if (StrName == _T("OPTION_GOODS")) pTab->SelectItem(1); else pTab->SelectItem(2); }}

登录窗口的创建

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){
CPaintManagerUI::SetInstance(hInstance); LogInWnd loginWnd; loginWnd.Create(NULL, _T("LOGINWND"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE); loginWnd.CenterWindow(); loginWnd.ShowModal(); return 0;}

效果展示

登录窗口界面

在这里插入图片描述

管理员界面(员工操作)

在这里插入图片描述
管理员界面(商品操作)
在这里插入图片描述
售货员界面
在这里插入图片描述

项目扩展

1.在本次设计当中还有很多地方需要去完善,应该更加贴近生活,使用户交互更加的人性化,比如在设计当中应该添加会员管理界面,并能实现对会员信息的增删查改,以及对会员等级的自动升级

2.在实现过程当中未考虑到多用户同时操作带来的线程安全问题

转载地址:https://blog.csdn.net/a_hang_szz/article/details/100097534 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:红黑树的创建
下一篇:win7升级打补丁之后远程连接服务器出现身份验证错误,又找不到加密Oracle修正

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月04日 00时59分19秒