list control 删除列的问题

LVCOLUMNcolumn;column.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;//结构成员有效性屏蔽位col... LVCOLUMN column;
column.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;//结构成员有效性屏蔽位
column.fmt=LVCFMT_LEFT; //左对齐
column.cx=i*0.1; //宽度
column.iSubItem=0; //第一列
column.pszText=" "; //标题
//column.cchTextMax=1; //表列名的文本长度
m_listctrl.InsertColumn(0,&column);//设置第一列
column.cx=i*0.4;
column.iSubItem=1;
column.pszText="第一列";
m_listctrl.InsertColumn(1,&column);//设置第二列
m_listctrl.InsertColumn(2,"第二列",LVCFMT_LEFT,i*0.4);//设置第二列
m_listctrl.InsertItem(0,"第一行");
m_listctrl.InsertItem(1,"第二行");
m_listctrl.SetItemText(0,1,"1");
m_listctrl.SetItemText(0,2,"2");

如上代码
m_listctrl.DeleteColumn(0);删除第一列的时候,只是列头没了,下面项的内容都在
我找出的原因是,我使用的是使用的工程是多字节字符集,如果改成Unicode 字符集就能正常删除,这个是vs的bug吧
展开
 我来答
liuhua1433
2010-07-11 · TA获得超过173个赞
知道答主
回答量:79
采纳率:0%
帮助的人:48.4万
展开全部
你没提出这个问题还真没注意过。我测试了下非Unicode工程,觉得这BUG并不是VS导致的,List控件是Windows的一个通用控件,VC的CListCtrl只不过是对这个控蠢厅件进行了包装。
m_listctrl.DeleteColumn(0);
完全可以替换为
m_listctrl.SendMessage(LVM_DELETECOLUMN,0,0); //第2个参数代表第0列
看见没有,只是对着控件发送了一个LVM_DELETECOLUMN消息,而具体如何响应这个带镇隐消息是控件自己的事,控件并旅凳不是VS给做出来的而是Windows提供给大家的,所以有BUG也不是VS的事情吧
当然以上只是我自己的推测,我自己也不太确定。可能是有错误的,你得慎重对待
除了第0列其它列的删除好象都没什么问题。可能是第0列包含了太多的东西吧,有标签,有图象等等
至于删除第0列的解决方案,有人建议删除所有再重建列表,也有人建议把其它列全部向前移动一列
看下这个帖子:
http://topic.csdn.net/t/20050228/17/3813026.html
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式