如某行的字符串是 1122334455 而我只想设置3344的颜色 请问怎么搞?
1条回答
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7716797
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:MFC ListCtrl 虚拟列表闪烁的问题 && 改变ListCtrl颜色
- 除此之外, 这篇博客: MFC之列表控件ListCtrl中的 一:基本操作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
1.
(1)InsertItem --- 插入一个主项(行) (2)DeleteItem --- 删除一个主项 (行) (3)InsertColumn --- 插入一个列 (4)DeleteColumn --- 删除一个列 (索引从0开始) (5)SetItemText --- 设置子项文本 (6)GetItemText --- 获得子项文本 (7)GetItemCount --- 获得项目的总数(总行数目) (8)SetImageList --- 把图像列表与列表控件关联(设置列表图标需要) ------------------------------------------------------- 用法: (1)InsertItem() //插入一行 // 可以插入图片(失败则图片不能显示) int InsertItem(const LVITEM* pItem); // 插入文字 int InsertItem( int nItem, //第几行 LPCTSTR lpszItem //该行第1列的文字 ); ------------------------------------------------------- (2)DeleteItem(iItem); //根据行号删除某行。 注意:若要删除多行时,需要从后面开始删除,因为如果从前面开始删除的话,下面的行会往上移,原来第1行就变成了第0行。 错误删法: m_listctrl.DeleteItem(0); m_listctrl.DeleteItem(1) 正确删法: m_listctrl.DeleteItem(1); m_listctrl.DeleteItem(0); ------------------------------------------------------- (3)InsertColumn() //插入1列 int InsertColumn( int nCol, // 第几列 LPCTSTR lpszColumnHeading, //列名 int nFormat = LVCFMT_LEFT, // 对齐的方式 int nWidth = -1, //该列的宽度 int nSubItem = -1 //子项的索引与列(一般缺省默认即可,可不填) ); 对齐的方式有3种: LVCFMT_LEFT (左对齐) LVCFMT_CENTER (居中) LVCFMT_RIGHT (右对齐) ------------------------------------------------------- (4)DeleteColumn --- 删除一个列 (索引从0开始) //注意:删除多列要从后往前删,否则出错 for(int k=2;k>=0;k--) m_ListCtrl.DeleteColumn(k); ------------------------------------------------------- (5)SetItemText() //设置文字 BOOL SetItemText( int nItem, //第几行 int nSubItem, //低级列 LPCTSTR lpszText //文字内容 ); -------------------------------------------------------
2.设置列表控件的扩展样式
SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES) ; 常用的扩展样式: LVS_EX_GRIDLINES---网格线 LVS_EX_CHECKBOXES---每一行的最前面带个复选框 LVS_EX_FULLROWSELECT---整行选中 LVS_EX_HEADERDRAGDROP---列表头可以拖动(改变位置)
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报