我是编程菜鸟
请问我在VC里怎样才能做一个彩色背景的listcontrl列表框?
哪位高手知道的请告诉我谢谢

解决方案 »

  1.   

    我做过,这样实现的:效果参见:http://pillar.vip.sina/com/pinger.jpg1)继承CListCtrl类
    class CMyLiistCtrl public CListCtrl
    {
        ....
    }2)在对话框类中,针对CListCtrl元素添加成员变量 CMyListCtrl m_wndMyListCtrl;3)在对话框的DoDataExchange函数中,添加项目:
    DDX_Control(pDX, IDC_LIST_CONTROL, m_wndMyListCtrl);4)CMyListCtrl类的部分实现代码如下:BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
    //{{AFX_MSG_MAP(CResultWnd)
    ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()void CMyListCtrl::PreSubclassWindow() 
    {
    // TODO: Add your specialized code here and/or call the base class
    ModifyStyle(LVS_TYPEMASK, LVS_REPORT); DWORD dwNewStyle = GetExtendedStyle();
    dwNewStyle |= LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT;
    SetExtendedStyle(dwNewStyle); m_ImageList.Create(IDB_IMAGE_LIST, 16, 16, 0xffffff);
    SetImageList(&m_ImageList, LVSIL_SMALL); CRect rect;
    GetClientRect(&rect);
    InsertColumn(IP_ADDRESS_COLUMN, _T("Destination IP Address"), LVCFMT_CENTER, IP_ADDRESS_COLUMN_WIDTH);
    InsertColumn(AVERAGE_TIME_COLUMN, _T("Average Echo Time(ms)"), LVCFMT_CENTER, AVERAGE_TIME_COLUMN_WIDTH);
    InsertColumn(ECHO_PERCENT_COLUMN, _T("Good Echo Percent"), LVCFMT_CENTER, ECHO_PERCENT_COLUMN_WIDTH);
    InsertColumn(HOST_NAME_COLUMN, _T("Resolved Host Name"), LVCFMT_CENTER, rect.Width() - IP_ADDRESS_COLUMN_WIDTH - AVERAGE_TIME_COLUMN_WIDTH - ECHO_PERCENT_COLUMN_WIDTH); m_hAccelerator = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDA_RESULT_WND)); CListCtrl::PreSubclassWindow();
    }void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
    {
    LPNMLVCUSTOMDRAW lpCustomDraw = (LPNMLVCUSTOMDRAW)pNMHDR;

    switch (lpCustomDraw->nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
    *pResult = CDRF_NOTIFYSUBITEMDRAW;
    break; case CDDS_ITEMPREPAINT:
    {
    if(lpCustomDraw->nmcd.dwItemSpec & 1)
    {
    lpCustomDraw->clrTextBk = RGB(239, 255, 255);
    }
    else
    {
    lpCustomDraw->clrTextBk = RGB(255, 239, 255);
    }
    *pResult = CDRF_NEWFONT;
    break;
    } default:
    *pResult = CDRF_DODEFAULT;
    }
    }
      

  2.   

    上面的连接有误,正确的是:
    http://pillar.vip.sina.com/pinger.jpg
      

  3.   

    大哥谢谢你
    不过我很菜看不懂你说的
    你能帮我做一个吗?
    只要一个有颜色的listcontrl框就行了
    我有急用,能尽快做好能发给我吗,我把我的分数都给你
    我的信箱是[email protected]
    感激不尽