Friday, March 23, 2007

CListCtrl使用详解

好久没干这事了,又开始写界面了……
转载+Comment

1。先来介绍REPORT类型的CListCtrl:
首先使用下面的语句设置CListCtrl的style:
DWORD SetExtendedStyle( DWORD dwNewStyle );
其中
LVS_EX_CHECKBOXES 表示添加CheckBox
LVS_EX_FULLROWSELECT 表示选择整行
LVS_EX_GRIDLINES 表示添加表格线

如果设置了LVS_EX_CHECKBOXES属性,则可以用
BOOL GetCheck( int nItem ) const;
来得到某一行是否Checked。

可以先用下面的语句来删除以前的东西:
for(int k=2;k>=0;k--) //注意要从后往前删,否则出错
m_ListCtrl.DeleteColumn(k);
m_ListCtrl.DeleteAllItems();

用下面的语句新建列:
m_ListCtrl.InsertColumn(0,_T("文件名"),LVCFMT_IMAGELVCFMT_LEFT);
m_ListCtrl.InsertColumn(1,_T("仪器类别"));
m_ListCtrl.InsertColumn(2,_T("项目类别"));

其中LVCFMT_IMAGE表示可以在第一列加入图标。如果不要图标可以删去。

然后设置列宽:
for(j=0;j<3;j++) flag="2;" flag="="2){//只调用一次SetImageList,否则出错" flag="(flag+1)%2;" kk="0;kk" bitmap="new" i =" 0;" hbitmap =" (HBITMAP)LoadImage(NULL,path+" hbitmap =" (HBITMAP)LoadImage(NULL,bmpFile,IMAGE_BITMAP,0,0," color="#ff0000">LVS_EX_GRIDLINES代表为列表加网格线
LVS_EX_HEADERDRAGDROP可以拖拉列表头
LVS_EX_ONECLICKACTIVATE当单击某一项时发出LVN_ITEMACTIVATE 消息
LVS_EX_FULLROWSELECT选中时高亮一行内容
选择其中一行的代码:
m_listctrl.SetItemState(index, LVIS_FOCUSED ¦LVIS_SELECTED, LVIS_FOCUSED ¦LVIS_SELECTED);

No comments:

Post a Comment