• 007 项目库存管理系统开始


    库存管理系  我们的程序 需要实现绿色部分

      ● 入库

      ● 出库

          ○ 领用

          ○ 调拨  ->  多点通信

      ● 商品信息

      ● 盘点

      ● 退货

      ● 调价

    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 }
  • 相关阅读:
    JVM 规范
    通过jmap查看jvm采用的垃圾收集器
    Nginx做前端Proxy时TIME_WAIT过多的问题
    nginx访问http自动跳转到https
    mysql5.7启动slave报错 ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
    nginx检查报错 error while loading shared libraries: libprofiler.so.0: cannot open shared object file: No such file or directory
    Nginx+Center OS 7.2 开机启动设置(转载)
    windows下安装pycharm并连接Linux的python环境
    jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
    centos7-安装mysql5.6.36
  • 原文地址:https://www.cnblogs.com/sdk123/p/6863892.html
Copyright © 2020-2023  润新知