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@待测试
    •  

posted on 2017-05-22 11:03  zzdoit  阅读(134)  评论(0编辑  收藏  举报

导航