PoEdu - Windows階段班 【Po學校】-Lesson04_項目開始_階段學習重點

PoEdu-Windows編程-Lesson04_項目開始_階段學習重點程序員

  • 一個標準的庫存管理需求
    • 商品信息
    • 入庫
    • 出庫
      • 領用
      • 調撥
        • 涉及多點通訊 在一臺PC上不可行。
    • 盤點
    • 退貨
    • 調價
  • 項目只寫3項需求:
    • 1 商品信息
    • 2 入庫
    • 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@待測試
相關文章
相關標籤/搜索