资源描述:
《list control控件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、在对话框中添加控件listcontrol: 创建对话框应用程序,在资源视图中添加对话框。如下图所示,在控件工具条中选择ListControl控件添加到对话框中,并调整控件尺寸。在ListControl控件的属性页中设置控件样式(Styles)和扩展样式等。为了显示详细数据信息,可以设置控件的显示风格为报表视图(Report)。 为了在对话框中使用控件,需要在ClassWizard中为对话框类添加控件成员变量,如下图所示: 执行以上操作后,系统自动添加了一个ClistControl对象,并与ListControl控件资源关联,相关代码如下:
2、 //ListDialogDlg.h:headerfile ...... public: CListCtrl m_cListCtrl; ...... //ListDialogDlg.cpp:implementationfile ...... voidCListDialogDlg::DoDataExchange(CDataExchange*pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CListDialogDlg) DDX_Con
3、trol(pDX,IDC_LIST_CTRL,m_cListCtrl); //}}AFX_DATA_MAP } ...... 因为本例只为演示在对话框中添加ListControl控件,所以只在对话框初始化消息函数中添加了以下显示控件的示例代码(代码含义请参照MSDN文献): BOOLCListDialogDlg::OnInitDialog() { CDialog::OnInitDialog(); ...... //TODO:Addextrainitializationhere DWORDe
4、xstyle=m_cListCtrl.GetExtendedStyle(); m_cListCtrl.SetExtendedStyle(exstyle
5、LVS_EX_FULLROWSELECT
6、LVS_EX_GRIDLINES
7、 LVS_EX_CHECKBOXES
8、WS_EX_STATICEDGE); CRectrect; m_cListCtrl.GetClientRect(&rect); intnColInterval=rect.Width()/5; m_cListCtrl.InsertC
9、olumn(0,_T("ItemName"),LVCFMT_LEFT,nColInterval*3); m_cListCtrl.InsertColumn(1,_T("Value"),LVCFMT_LEFT,nColInterval); m_cListCtrl.InsertColumn(2,_T("Time"),LVCFMT_LEFT,rect.Width()-4*nColInterval); m_cListCtrl.InsertItem(0,"name"); m_cListCtrl.SetItemText(0,1,"v
10、alue"); m_cListCtrl.SetItemText(0,2,"time"); ...... returnTRUE; //returnTRUE unlessyousetthefocustoacontrol }二、为ListControl控件添加消息处理函数 1、关于ListControl控件消息 在ListControl控件中有以下消息(通知)可以发送:NM_CLICK、NM_DBLCLK、NM_RCLICK、LVN_COLUMNCLICK、HDN_ITEMCLICK等。 其中HDN_ITEMCLIC
11、K是ListControl的子控件ListCtrl发给它的Parent(CListCtrl)的;LVN_COLUMNCLICK是HeaderCtrl发给它的Parent的。所以在Dialog里面,试图通过ClassWizard产生的ON_NOTIFY宏:ON_NOTIFY(HDN_ITEMCLICK,IDC_LIST_CTRL,OnItemClick),来接收HDN_ITEMCLICK消息是无法成功的。要解决这个问题,可以从CListCtrl派生一个新的类,并在CListCtrl派生类中处理HDN_ITEMCLICK消息。注意消息映射的时候,Header的控
12、件ID是0,类似如下消息映射宏代码: ON_NO