我在listctrl里设置了checkbox风格,通过点击一个button使listctrl里每一个checkbox都被selected,但是每一行显示的确是灰色的,怎样使它变为蓝色?
for(i = 0; i < m_list.GetItemCount(); i++)  
{  
    m_list.SetCheck(i, TRUE);         
m_list.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}
另外,全选后点击其中一项,只有点中的那一项变成蓝色,其他的背景色都变为没有选中checkbox时的颜色了,但是checkbox仍旧是selected状态。这个又怎么解决阿?我想只要是selected状态就一定是蓝色背景的。

解决方案 »

  1.   

    SetExtendedStyle(WS_HSCROLL | WS_VSCROLL | LVS_EX_FLATSB | LVS_EX_CHECKBOXES| LVS_EX_GRIDLINES)好像没有,这个属性是什么?
      

  2.   

    m_list.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
    为什么要加LVIS_FOCUSED呢,并没有什么用啊.
      

  3.   

    确保列表控件属性的Single selection项未被选中.
      

  4.   

    我想问一下:checkbox与listctrl是不是两个控件?否则你又怎么将listctrl设为checkbox风格的呢
    我一直都用ListCtrl控件连接数据库,并对其进行选择、修改、更新等的处理,但搞不清楚你说的是什么意思
      

  5.   

    for(i = 0; i < m_list.GetItemCount(); i++)改为 for(i = 0; i <m_list.GetSelectedCount(); i++)试试
      

  6.   

    不是两个控件吧,在style中用LVS_EX_CHECKBOXES属性设置的。