一个关与控件的问题,比如我现在想在ListBox上显示a1,a2,a3,a4,这个四个在一行中显示,鼠标点在a2上,那么a2就能高亮,但是其他的不高亮实现,而且现在要能删除高亮显示的a2,可以做到吗?如果换成ListCtrl控件呢?
是不是在ListBox中的item没有subitem,ListCtrl能实现我想要的功能吗?

解决方案 »

  1.   

    Listbox不能实现你的功能,用Listctrl可以
      

  2.   

    在对话框里加一全ListCtrl, m_ListCtrl为它的成员变量,它的
    属性设置styles  view 为iconBOOL CDialogDlg::OnInitDialog()
    {
       .........
    m_ListCtrl.InsertItem(0, "a");
    m_ListCtrl.InsertItem(1, "b");
    m_ListCtrl.InsertItem(2, "c");
    .....
    }
    void CDialogDlg::OnDblclkListctrl(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    for (int i = 0; i < m_ListCtrl.GetItemCount(); i ++)
    {
    if (m_ListCtrl.GetItemState(i, LVIS_SELECTED))
    {
    m_ListCtrl.DeleteItem(i);
    break;
    }
    }
    *pResult = 0;
    }
      

  3.   

    使用Listctrl,你可以看看MSDN上关于CListctrl的成员函数说明。
      

  4.   

    我知道了,那只是一行,如果我想多行做呢?不要column的标题,每一行的第一个显示图标,而其他的不显示?又如何做呢?