库存管理系 我们的程序 需要实现绿色部分
● 入库
● 出库
○ 领用
○ 调拨 -> 多点通信
● 商品信息
● 盘点
● 退货
● 调价
MFC 和我们的 C++最非常契合的
● C++
● 类
○ 封装
● MFC不支持C编译器
○ MFC是一套框架,可以不用在VS下面编译
○ 这个编译器必须是 C++编译器,还有就是WIndows 下面的编译器
○ API 和 Linux 里面的API 是不兼容的
● MFC 是讲我们 Windows API 用类方式从新的归类
○ 开发这个程序我们会使用到MFC
○ 首先我们不要对MFC有恐惧的心理
○ 其实MFC里面给我们提供的都是一些类
Windows阶段学习目的
● 使用知识的能力
● 自学的能力
● Win API -> MFC
● 某些 API
项目开始
● 新建MFC程序 基于对话框
○ 去掉关于框
○ 设置标题 PoEdu库存管理系统
● stdafx.h
○ #include <afxwin.h> MFC核心组件和便准组件
○ #include <afxext.h> MFC扩展
○ #include <afxdisp.h> MFC自动化类
● Resource.h
○ 资源文件
● PoEduINVDemo.h
○ //重写 virtual BOOL InitInstance();
○ 有初始化的意思
○ 做的操作就是 Windonws 下面的 注册和创建窗口类
● PoEduINVDemoDlg.h
○ 创建窗口类
○ 响应窗口消息
○ 绘制窗口
○ C++是遵循类的规则的
○ MFC可以对修改默认类构造函数 不过不推荐这么做。。
项目开始2
● 拖拽控件 List Control 控件
○ 设置控件属性 View Report 报表模式
○ 设置变量 或者 ID的方式 m_listGoodsInfo
○ 设置报表的列数
○ 设置消息响应 启动右键菜单
1 CRect rectMain = {0}; 2 GetWindowRect(&rectMain); //获取窗口大小 3 m_listGoodsInfo.InsertColumn(0, TEXT("序号"), LVCFMT_CENTER, rectMain.Width()*0.2); 4 m_listGoodsInfo.InsertColumn(1, TEXT("名称"), LVCFMT_CENTER, rectMain.Width()*0.4); 5 m_listGoodsInfo.InsertColumn(2, TEXT("数量"), LVCFMT_CENTER, rectMain.Width()*0.2); 6 m_listGoodsInfo.InsertColumn(3, TEXT("仓库号"), LVCFMT_CENTER, rectMain.Width()*0.2);
● 新建 Menu 菜单
1 CMenu menuRClick; 2 menuRClick.LoadMenu(IDR_MENU_RCLICK); //绑定菜单 3 CMenu *pMenu = menuRClick.GetSubMenu(0); //菜单下一层 4 CPoint pointClick = {0}; 5 GetCursorPos(&pointClick); //获取鼠标位置 6 7 //弹出菜单 8 pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pointClik.x, pointClick.y,this);
● Menu 菜单 增加 处理事件
1 void CPoEduINVDemoDlg::OnMenuAdd() 2 { 3 //只需要一个窗口的做法 4 //我需要多个窗口的做法 5 CDLgGoodInfo *dlg = new CDlgGoodInfo; 6 dlg->Create(IDD_DIALOG_GOODINFO); 7 dlg->ShowWindow(SW_SHOW); 8 //dlg.DoModal(); 9 //不能繁琐操作文件 10 //初始化的时候读 11 //定期读写 -> 防止程序崩溃 12 //结束的时候写 13 14 //GoodsInfo应该是属于程序的 theApp 15 16 }