ListControl控件的使用方法

ListControl控件的使用方法,第1张

ListControl控件的使用方法,第2张

列表控件可以看作是一个增强的ListBox,它提供了四种样式,可以同时显示一列的多个属性值。MFC使用CListCtrl类封装列表控件的各种操作。通过调用boolcreate (dword dwstyle,constrect & rect,cwnd * pparentwnd,uintnid);要创建窗口,可以在dwStyle中使用以下特殊样式的列表控件:

LVS图标、LVS小图标、LVS列表和LVS报告。同时只能选择其中一种,对应大图标显示、小图标显示、列表显示、明细报表显示。

LVS _编辑标签节点的显示字符可以编辑,报表样式只能编辑第一列。

LVS_SHOWSELALWAYS在失去焦点时也显示当前选定的节点。

LVS _辛格莱一次只能选择列表中的一个项目。

首先,您需要设置List控件使用的ImageList。如果您使用大图标显示样式,您需要以下列形式调用它:

CImageList * set imagelist(CImageList * pImageList,LVSIL _ NORMAL);

如果你使用其他三种样式来显示而不想显示图标,你可以不做任何设置,否则你需要以下面的形式调用它们:

CImageList * set imagelist(CImageList * pImageList,LVSIL _ SMALL);

int InsertItem( int nItem,LPCTSTR lpszItem);插入行

NItem:表示插入位置。

LpszItem:是显示字符。

除了LVS _报表样式,其他三种样式都只需要直接调用InsertItem,但是如果使用报表样式,就必须先在列表控件中设置列信息。
int InsertColumn( int nCol,LPCTSTR lpszColumnHeading,int nFormat,int nWidth,int nSubItem);Insert column iCol:是列的位置,从零开始lpszColumnHeading:是显示的列名nFormat:是显示对齐方式nWidth:是显示宽度nSubItem:是分配给此列的列索引。

BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText);设置每列的显示字符
nItem:行位置
nSubItem:列位置
lpszText:显示字符。

下面的代码演示了如何设置多列并插入数据:
m _ list . set imagelist(& m _ list small,lvsil _ small);//设置imagelist
m _ list . insert column(0," col1 ",lvcfmt _ left,300,0);//设置列
m _ list.insertcolumn (1," col2 ",lvcfmt _ left,300,1);
m_list。InsertColumn(2," Col 3 ",LVCFMT_LEFT,300,2);
m_list。InsertItem(0," Item 1 _ 1 ");//插入行
m _ list.setitemtext (0,1," item 1 _ 2 ");//设置本行不同列的显示字符
m _ list.setitemtext (0,2," item 1 _ 3 ")

colorref gettext color()/bool settext color(colorref Cr):用于获取/设置显示的字符颜色。
colorref gettext bk color()/boolsettext bk color(colorref Cr):用于获取/设置显示的背景色。
void setitemcount(int icount):用于获取添加到列表中的项目数。
BOOL DeleteItem(int nItem):用于删除一个项目
bool delete items():将删除所有项目。
bool setbkimage(hbit map HBM,bool ftile,int xoffset percent,int yoffset percent):用于设置背景位图。
cstringgetitemtext(int nitem,int nsubtem):用于获取项目的显示字符。

ON _ NOTIFY宏也用于列表控件的消息映射,形式如下:on _ notify (wNotifyCode,id,memberFxn),wNotifyCode是通知代码,ID是生成消息的窗口ID,MemberFXN是处理函数。函数的原型就像void onxxxlist (NMHDR * pNMHDR,LRESULT * PRESULT),其中pNMHDR是一个数据结构,在具体使用时需要转换成其他类型的结构。列表控件的可能值和对应的数据结构为:
LVN_BEGINLABELEDIT在编辑字符的开头发送,使用的结构为:
nmlvdispinfo
lvn _ endlabeled it在编辑字符的结尾发送,使用的结构为:
NMLVDISPINFO
当需要一项信息时,例如需要一项的显示字符时,发送lvn _ getdispinfo。使用的结构:nmlvdispinfo
关于ON_NOTIFY的内容很多,以后会详细讲解。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » ListControl控件的使用方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情