1. 程式人生 > >007 項目庫存管理系統開始

007 項目庫存管理系統開始

clas bsp left click windows create dem 響應 inf

庫存管理系 我們的程序 需要實現綠色部分

  ● 入庫

  ● 出庫

      ○ 領用

      ○ 調撥  ->  多點通信

  商品信息

  ● 盤點

  ● 退貨

  ● 調價

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 }

007 項目庫存管理系統開始