標籤:動作 公司 操作 建議 添加 sre 基類 ext 使用
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: 如果寬度擷取的是主視窗的寬度,會對列表寬度有什麼樣的影響?會不會有問題? ###問題[email protected]待測試
-
PoEdu-Windows編程-Lesson04_項目開始_階段學習重點