心胸决定格局,眼界决定境界...

List Control用法

1.调用CListCtrl的 InsertColumn无效的解决方法

想编一个列表的MFC程序,可在调用InsertColumn时却出了问题:列表控件没有反应。

上网查资料,得到了答案,那就是要把它的Style指定为LVS_REPORT。或者在控件属性中设置

具体做法如下:

      假设你的Dialog中有:      CListCtrl m_listctrl;      在你调用InsertColumn之前,先要输入如下的代码:       LONG styles;
       styles=GetWindowLong(m_listctrl.m_hWnd,GWL_STYLE);
       SetWindowLong(m_listctrl.m_hWnd,GWL_STYLE,styles | LVS_REPORT);      这样才能有效。 
 
2.使用方法: 

BOOL Pic2VideoDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
 //  执行此操作
 SetIcon(m_hIcon, TRUE);   // 设置大图标
 SetIcon(m_hIcon, FALSE);  // 设置小图标


 // TODO: 在此添加额外的初始化代码
 DWORD exstyle = m_ClistCtrl.GetExtendedStyle();
 m_ClistCtrl.SetExtendedStyle(exstyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |

  LVS_EX_CHECKBOXES | WS_EX_STATICEDGE );//添加CheckBox

 CRect rect;
 m_ClistCtrl.GetClientRect(&rect);
 int nColInterval = rect.Width()/5;//将宽分为5等分

 m_ClistCtrl.InsertColumn(0, _T("ID"), LVCFMT_LEFT, nColInterval*1.5);//第一列  1.5等分
 m_ClistCtrl.InsertColumn(1, _T("文件名"), LVCFMT_LEFT, nColInterval*3.5);//第二列 3.5等分

 

  m_ClistCtrl.InsertItem(nCount,strTemp);//插入第nCount行
  m_ClistCtrl.SetItemText(nCount,1,strFileShow);//插入第nCount行文本,第一列(实际是第二列)

 return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

3.单击某一行消息响应.

添加NM_CLICK消息响应

ON_NOTIFY(NM_CLICK, IDC_ListFile, &CPic2VideoDlg::OnNMClickListfile)

 

posted @ 2013-11-26 15:54  WELEN  阅读(220)  评论(0)    收藏  举报