20200220 MFC之列表控件技术总结 CListCtrl (一)

列表视图控件的创建
MFC为列表视图控件的操作提供了CListCtrl类。

如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下:

virtual BOOL Create(
		DWORD dwStyle,
		const RECT& rect,
		CWnd* pParentWnd,
		UINT nID
);

参数rect为列表视图控件的位置和尺寸,pParentWnd为指向父窗口的指针,nID指定列表视图控件的ID,最复杂的一个参数同样还是dwStyle,它用于设定列表视图控件的风格,可以是以下风格的组合:

          风格                                                含义
       LVS_ALIGNLEFT                        显示格式是大图标或小图标时,标签放在图标的左边
       LVS_ALIGNTOP                         显示格式是大图标或小图标时,标题放在图标的上边
       LVS_AUTOARRANGE                 显示格式是大图标或小图标时,自动排列控件中的列表项
       LVS_EDITLABELS                      用户可以修改标签文本
       LVS_ICON                                 指定大图标显示格式
       LVS_LIST                                  指定列表显示格式
       LVS_NOCOLUMNHEADER         在报表格式中不显示列的表头
       LVS_NOLABELWRAP                显示格式是大图标时,使标签文本单行显示。默认是多行显示
       LVS_NOSCROLL                       列表视图控件无滚动条,此风格不能与LVS_LIST或LVS_REPORT组合使用
       LVS_NOSORTHEADER              报表格式的列表视图控件的表头不能作为排序按钮使用
       LVS_OWNERDRAWFIXED        由控件的拥有者负责绘制表项
       LVS_REPORT                           指定报表显示格式
       LVS_SHAREIMAGELISTS           使列表视图共享图像序列
       LVS_SHOWSELALWAYS           即使控件失去输入焦点,仍显示出项的选择状态
       LVS_SINGLESEL                       指定只能有一个列表项被选中。默认时可以多项选择
       LVS_SMALLICON                      指定小图标显示格式
       LVS_SORTASCENDING             按升序排列列表项
       LVS_SORTDESCENDING          按降序排列列表项

与前面的控件一样,除了以上风格一般我们还要为列表视图控件设置WS_CHILD和WS_VISIBLE风格。对于直接在对话框模板中创建的列表视图控件,其属性页中的属性与上述风格是对应的,例如,属性Alignment默认为Left,也就等价于指定了LVS_ALIGNLEFT风格。

CListCtrl类的主要成员函数

 UINT GetSelectedCount( ) const;**//该函数返回列表视图控件中被选择列表项的数量。**
POSITION GetFirstSelectedItemPosition( ) const;

获取列表视图控件中第一个被选择项的位置。返回的POSITION值可以用来迭代来获取其他选择项,可以当作参数传入下面的GetNextSelectedItem函数来获得选择项的索引。如果没有被选择项则返回NULL。
int GetNextSelectedItem(POSITION& pos) const;

该函数获取由pos指定的列表项的索引,然后将pos设置为下一个位置的POSITION值。参数pos为之前调用GetNextSelectedItem或GetFirstSelectedItemPosition得到的POSITION值的引用。返回值就是pos指定列表项的索引。

int GetItemCount( ) const;//获取列表视图控件中列表项的数量。
int InsertColumn(int nCol,const LVCOLUMN* pColumn );
int InsertColumn(int nCol,LPCTSTR lpszColumnHeading
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值