如题,给点提示都有份

解决方案 »

  1.   

    CListView中就包含CListCtrl,可以通过CListView::GetListCtrl函数获得相应CListCtrl如果使用CView的话,可以在定义一个CListCtrl成员并在CView::OnCreate()中创建,用起来功能一样,但要处理闪烁问题
      

  2.   

    msn的分组列表用的是自己定制CListCtrl,用Spy可以看出来
      

  3.   

    在CListView中这样得到CListCtrl
    CListCtr& m_list = GetListCtrl();在CTreeView中这样得到CTreeCtrl
    CTreeCtr& m_tree = GetTreeCtrl();
      

  4.   

    如何在CView::OnCreate()中创建CListCtrl阿,但要处理闪烁问题
      

  5.   

    资料上没查到,热心的朋友帮个忙阿,我就是要做一个msn差不多的界面
      

  6.   

    如下在cview里create  listctrl时怎么就是错误呢,返回空的m_list指针!大虾们,帮个忙啊 CRect rect;
    rect.SetRectEmpty();
    BOOL create=m_list.CreateEx(WS_EX_ACCEPTFILES, "SysListView32", "", LVS_LIST |
    LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_CHILD | WS_TABSTOP, rect, this, IDC_LISTBOX);
    if(create)
    m_list.ShowWindow(SW_SHOW);
      

  7.   

    CRect rect;
    GetClientRect(&rect);
    rect.left += 8;
    rect.top += 15;
    rect.right -= 8;
    rect.bottom -= 8;
    if (!m_list.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT,
    rect, this, IDC_LISTBOX))
    {
    TRACE0("Failed to create view for CMyBarLeft\n");
    return -1;
    }
    m_list.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
    DWORD dwStyle = ::SendMessage (m_list.m_hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
    dwStyle |= dwStyle;
    ::SendMessage (m_list.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle);

    int i;
    LV_COLUMN lvc; lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
    CString strTemp[2] = {"名称", "IP"};
    int size[2] = {140,40};
    for(i = 0; i < 2; i++)
    {
    lvc.iSubItem = i;
    lvc.pszText = (char*)(LPCTSTR)strTemp[i];
    lvc.cx = size[i];
    lvc.fmt = LVCFMT_LEFT;
    m_list.InsertColumn(i, &lvc);
    }
    m_list.ShowWindow(SW_SHOW); 上面呢是create出来了,可是cview里空空如也,看不到东西!怎么回事?各位兄弟帮帮忙,分布够再加,急阿
      

  8.   

    kao ,wo createchulaile,联人帮忙也没有,真寒心了
      

  9.   

    用formview,就象对话框一样,往里面加控件就可以了,很方便的
      

  10.   

    可以啊,闪烁问题要自己定制处理CView、CListCtrl的相关属性,主要是重画问题。和
    函数Invalidate()有关在OnCreate()里写// TODO: Add your specialized creation code here
    CRect rect(0,0,10,10);
    int result = m_List.Create(WS_CHILD | WS_VISIBLE | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_REPORT | LVS_SHOWSELALWAYS, rect, this, 5005);

    LV_COLUMN lvc;
    lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;lvc.iSubItem = 0;
    lvc.pszText = "sub0";
    lvc.cx = 50;
    lvc.fmt = LVCFMT_LEFT;
    m_List.InsertColumn(0,&lvc);lvc.iSubItem = 1;
    lvc.pszText = "sub1";
    lvc.cx = 50;
    lvc.fmt = LVCFMT_LEFT;
    m_List.InsertColumn(1,&lvc);LV_ITEM lvi;lvi.mask = LVIF_TEXT | LVIF_PARAM;
    lvi.iSubItem = 0;
    lvi.stateMask = LVIS_OVERLAYMASK;//
    lvi.state = 1;lvi.pszText = "1234";
    lvi.iItem = 0;
    m_List.InsertItem(&lvi);

    lvi.pszText = "5678";
    lvi.iItem = 0;
    m_List.InsertItem(&lvi);lvi.pszText = "0000";
    lvi.iItem = 0;
    m_List.InsertItem(&lvi);
    在OnSize(nType, cx, cy)里这样写
     // TODO: Add your message handler code here
     m_List.MoveWindow(50,50,cx-100,cy-100);