新手使用CListCtrl

来源:互联网 发布:已知距离矩阵怎么聚类 编辑:程序博客网 时间:2024/06/06 19:57

 

说来惭愧,由于实践经验少,我以前还没有用过列表框,这次用这个,也是要用这个写点东西,然而却不知道怎么用,连个最简单的列表框都弄不出来。经过一个小时左右摸索,算是能写点东西了。

对于新手而言,第一次使用这个都会有点不知所措吧,事实上要说不知道,其实只是不知道如何写开头罢了,也就是创建列表。

       先看代码:

在对话框模式中的初始化处添加如下代码:

CMyListCtrl*m_pListCtrl=new CMyListCtrl();

       m_pListCtrl->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,

  CRect(10,10,300,200),this, 1);

       m_pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);

 

       m_pListCtrl->InsertColumn(0,"第一列");

       m_pListCtrl->InsertColumn(1,"第二列");

       m_pListCtrl->InsertColumn(2,"第三列");

       CRectrect;

       m_pListCtrl->GetWindowRect(&rect);

       for(inti=0;i<3;++i)

       {

              m_pListCtrl->SetColumnWidth(i,rect.Width()/3);

       }

即可生成一个简单的列表模型(图片传不上来,郁闷)

代码说明:

1:这里使用动态创建,要记得在程序结束时销毁。

2:最好是定义一个类成员变量m_ListCtrlm_pListCtrl,这样便于管理,我在这个例子中定义临时变量自然是不行的(呵呵,已经内存泄露了)。

3:也许有人问为什么不使用ClassWizard自动关联一个列表控件对象,我开始是这样的,毕竟这样很方便,但后来发现这种创建让人摸不着北,往往不能尽如人意,于是我决定派生一个新的列表类CMyListCtrl,这样所有的列表操作都在掌控之中了,呼可以喘口气了。

4:自建的列表类需要自己使用Create()函数来建立列表,WS_CHILD|WS_VISIBLE|WS_BORDER|这三个家伙应该是大部分控件都有的属性,大家应该很熟悉,LVS_REPORTMSDN说明,你可以自己去掉这项,看看结果(嘿嘿)。其他参数好说。

5:这样创建好了以后可以说就完事了,但是你会发现列表框没有网格,这些设置是通过SetExtendedStyle()函数来完成的,你也可以去掉看看。

6:然后是插入,这个就不说了,插入完了以后,运行发现列表框里一团糟。

7:于是还有很重要的一点是设定列表列宽度,这样才能完好的将数据显示出来。

8:注意列表中的插入:InsertItem()->SetItemText()。


好了,就到这,一般的应用基本OK

哦,对了,习惯了界面的同学可能一时不知道怎么添加消息,打开ClassWizard,里面有个CmyListCtrl类,点击,就有消息表了。

原创粉丝点击