2009-10-21 20:30 ListCtrl 在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用
先注明一下,这里,我们用m_listctrl 来表示一个CListCtrl 的类对象,然后这里我们的ListCtrl 都是 report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟 report 是大众话的使用
其次,我们这里用条款一,条款二来描述第一点,第二点,这个是参照《Effective C++》的叫法,俺觉得这么叫比较COOL :) 条款一:设置 ListCtrl 的风格 在CSDN 上常常看到有人问怎么设置风格的,他们ListCtrl 的样子是一个列表,有横条和竖条分界线,然后选中一行,要整一行都选中,而不是只有某一列被选中,等等,这里给一个比较全面的设置方法
//获得原有风格 DWORD dwStyle = ::GetWindowLong(m_listctrl
m_hWnd, GWL_STYLE); dwStyle &= ~ (LVS_TYPEMASK); dwStyle &= ~ (LVS_EDITLABELS); //设置新风格 SetWindowLong(m_listctrl
m_hWnd, GWL_STYLE,dwStyle, |LVS_REPORT | LVS_NOLABELWRAP | LVS_SHOWSELALWAYS); //设置扩展风格 DWORD styles = LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES; ListView_SetExtendedListViewStyleEx(m_listctrl
m_hWnd, styles, styles ); 其中LVS_EX_FULLROWSELECT 就是前面说得整行选