007 項目庫存管理系統開始
庫存管理系 我們的程序 需要實現綠色部分
● 入庫
● 出庫
○ 領用
○ 調撥 -> 多點通信
● 商品信息
● 盤點
● 退貨
● 調價
MFC 和我們的 C++最非常契合的
● C++
● 類
○ 封裝
● MFC不支持C編譯器
○ MFC是一套框架,可以不用在VS下面編譯
○ 這個編譯器必須是 C++編譯器,還有就是WIndows 下面的編譯器
○ API 和 Linux 裏面的API 是不兼容的
● MFC 是講我們 Windows API 用類方式從新的歸類
○
○ 首先我們不要對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 項目庫存管理系統開始