vc ListControl设置checkbox风格,时owerdata不能设置为true---m_list.SetItemText()m_list.SetItemData()有关
2015-07-07 10:55
579 查看
网友:
http://blog.163.com/weichao1984@126/blog/static/20525954201082981647567/
这人写的非常全,很好,~\(≧▽≦)/~赞!
ListControl加checkbox属性,简单测试:
1、拖动控件,listcontrol属性如下:
2、对listcontrol添加自己的control变量 m_list
3、设置风格按键,代码:
4、插入数据按键:
5、选择按键:
下面,咱说一下,这个ower data属性:
1将其设置为True的时候,程序里这么用的
m_list.SetItemCountEx(m_vAllMJKaInfo.size());
m_list.Invalidate();
这样是动态更新list界面显示的东西
2如果只是简单的 m_list.SetItemText() m_list.SetItemData()则,将这个 owerdata属性设置为False(默认也是False)
总之,一般用法就是将这个 owerdata属性设置为FALSE,在list中添加Checkbox对勾属性也没问题。
除非,你程序里动态更新list界面,用到 m_list.Invalidate();那么你的 owerdata属性就得设置为True,这时checkbox之类的属性就会有问题。
目前解决办法,2者只能保留其一,我的解决办法是在2个界面上,建立分开的listcontrol,那么一个 owerdata属性就得设置为True,另一个 owerdata属性就得设置为False这样就不会有冲突了。
http://blog.163.com/weichao1984@126/blog/static/20525954201082981647567/
这人写的非常全,很好,~\(≧▽≦)/~赞!
ListControl加checkbox属性,简单测试:
1、拖动控件,listcontrol属性如下:
2、对listcontrol添加自己的control变量 m_list
3、设置风格按键,代码:
void CListCtrlDlg::OnBnClickedButton4() { <span style="white-space:pre"> </span>// TODO: 在此添加控件通知处理程序代码 <span style="white-space:pre"> </span>m_list.SendMessage (LVM_SETEXTENDEDLISTVIEWSTYLE, 0, <span style="white-space:pre"> </span>LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES); <span style="white-space:pre"> </span>m_list.DeleteAllItems(); }
4、插入数据按键:
m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, "11");//插入行 m_list.SetItemText(nRow, 1, "jacky");//设置数据 int nRow1 = m_list.InsertItem(1, "12");//插入行 m_list.SetItemText(nRow1, 1, "Tom");//设置数据
5、选择按键:
POSITION pos=m_list.GetFirstSelectedItemPosition();//pos就是行索引号,晕 if(pos==NULL) ::AfxMessageBox("请选择要选中的行!"); else { while(pos) { int nIndex=-1; nIndex = m_list.GetNextSelectedItem(pos);//多少行-- if(nIndex >=0&&nIndex<m_list.GetItemCount()) { m_list.SetCheck(nIndex,TRUE); } } }
下面,咱说一下,这个ower data属性:
1将其设置为True的时候,程序里这么用的
m_list.SetItemCountEx(m_vAllMJKaInfo.size());
m_list.Invalidate();
这样是动态更新list界面显示的东西
2如果只是简单的 m_list.SetItemText() m_list.SetItemData()则,将这个 owerdata属性设置为False(默认也是False)
总之,一般用法就是将这个 owerdata属性设置为FALSE,在list中添加Checkbox对勾属性也没问题。
除非,你程序里动态更新list界面,用到 m_list.Invalidate();那么你的 owerdata属性就得设置为True,这时checkbox之类的属性就会有问题。
目前解决办法,2者只能保留其一,我的解决办法是在2个界面上,建立分开的listcontrol,那么一个 owerdata属性就得设置为True,另一个 owerdata属性就得设置为False这样就不会有冲突了。
相关文章推荐
- UIView 的旋转与缩放以及同时应用两种效果及应用
- 从request获取各种路径总结 request.getRealPath("url"); // 虚拟目录映射为实际目录 request.getRealPat
- quickSort
- Java break [flag]; 与continue [flag]; 区别
- IOS-UICollectionViewLayout
- [SoapUI] 通过Groovy写文本文件
- easyui 中datagrid获取选中行的行号
- Leetcode 232 Implement Queue using Stacks 和 231 Power of Two
- [LeetCode] Implement Queue using Stacks 用栈来实现队列
- JAVA 中 CharSequence 类型
- 华为S8508交换机的问题
- [SoapUI] context.expand 和 groovyUtils.getXmlHolder 有什么不一样
- 从客户端(hidXML="<FlexCell xml:space=...")中检测到有潜在危险的Request.Form值
- [XCode] 默认源文件和build目录
- 不要直接对Request.Headers["If-Modified-Since"]使用Convert.ToDateTime
- UIScrollView详解
- windows 10 build 10162无法识别网卡怎么办?
- ext笔记(te be continued..)
- 全新Win10预览版本周推送,或为Build 10164
- 视频:Win10 Mobile Build 10158模拟器上手视频演示