PoEdu-Windows編程-Lesson04_項目開始_階段學習重點程序員
- 一個標準的庫存管理需求
- 項目只寫3項需求:
- 用MFC來進行開發,簡單剖析MFC
- MFC 能夠當作是一個一個的類組成,與C++十分切合的,能夠幫咱們封裝,幫咱們分類
- MFC不支持純C編譯器
- 開發工具用VS2015,一個公司出品,無縫兼容
- 重點:程序員的自學能力
- 1 快速查詢MSDN 能力
- 2 閱讀文檔的能力
- 3 動手調試的能力
- 界面製做
- 注意點1
- 子類的對象 與 子類的一個指針(由指向父類的指針轉換獲得) 二者本質相同
- 由於有繼承關係,因此能把父類(基類)的指針轉換爲子類(派生類)的指針
- 注意點2
- CListCtrl插入元素函數 返回SendMessage()的值 2種方式:
- 1 int InsertColumn( int nCol, const LVCOLUMN* pColumn);
- LVCOLUMN - Win32中一個結構體對象,包含第2種方式的3個參數,本質上這兩種參數是一致的。控件之間用SendMessage()來進行交互。
- 2 int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormmat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
- int nCol, 列的索引
- LPCTSTR lpszColumnHending, 包含列標題的字符串的地址
- int nFormat = LVCFMT_LEFT, 指定列的對齊方式的整數。 它能夠是如下值之一: LVCFMT_LEFT、 LVCFMT_RIGHT或 LVCFMT_CENTER。
- nWidth 列的寬度,以像素爲單位。 若是此參數是-1,列寬未設置。
- nSubItem 子項的索引與列。 若是此參數是-1,子項不與列出。
- 注意點3 MFC中的_T,這個宏在MFC中取代了win32中的_TEXT(X)宏
- 注意點4 LVCFMT縮寫表明:
- FMT - Format 格式化
- LVC - ListViewControl 列表視圖控件
- 注意點5 插入列InsertColumn正確寬度設置:
- 插入列InsertColumn正確寬度設置
- 設置一個矩形類,用GetWindowsRect(&rect)得出一個矩形數據
- 寬度用矩形對象點出成員函數 :寬度 rect.Width()
- 注意點6 CRect 矩形類的使用,查看MSDN
- 注意點7 ListControl控件的插入列操做,不是一個初始化(只初始操做一次)的操做,之後還會被其它動做,如:窗口大小改變,插入列,刪除列,等等操做來調用它。因此,插入列InsertColumn系列操做應該封裝成一個函數。
- 注意點8 SetExtendedStyle() 設置擴展的樣式風格
- 如何快速查看MSDN中有哪些樣式和風格
- 在Vs2015中,點選對象,右鍵找到申明,點選前面的申明類,F1打開MSDN,跳轉MSDN
- Ctrl + F 查找 「Style" , 再下翻找到 SetExtendedStyle(),點開
- 在SetExtendedStyle()頁面「參數」中,點開 "Windows SDK的 擴展列表視圖樣式",就找到了「EXtended List-View Styles」
- 這裏就有不少的樣式風格,以「LVS_EX_」爲前綴,L - List, V - View ,S - Styles EX - EXtended
- 注意點9 LVS_EX_GRIDLINES 帶有網格線的樣式
- 注意點10 若是ListCtrl沒有風格樣式時,貌似能夠只設置風格線樣式
- 建議不要單獨的只是把樣式,設置爲網格線樣式,最好是能保留原來的風格,在原來風格樣式的基礎上,添加網格線樣式,纔是正確的方式
- 1 先獲取當前對象的風格樣式 DWORD dwStyle = m_listCtrl.GetStyle();
- 2 設置 或等於: 如 dwStyle |= LVS_EX_GRIDLINES; m_listCtrl.SetEXtendedStyle(dwStyle);
- 注意點11 如上10,只初始一次的操做,能夠放在初始化方法中,不用封裝。
- 問題點1: 若是寬度獲取的是主窗口的寬度,會對列表寬度有什麼樣的影響?會不會有問題? ###問題1@待測試