怎么在视图中创建clistctrl,谁能给下代码,谢谢了先

解决方案 »

  1.   

    如果是基于文档--视图结构的话,视图基类用CListView,就能很方便的应用List了
      

  2.   

    listctrl也是窗口,Create后showwindow,记着在OnSize里调整大小.
      

  3.   

    在创建工程的最后一步选择的视图类是CListView不就可以用CListCtrl了
      

  4.   

    在创建工程的时候,选择CListView作为视图基类,然后在CListView的派生类的OnInitialUpdate() 中添加代码对列表进行设置,例如下面代码:CListCtrl &CList=GetListCtrl(); //改变字体大小
    m_font.CreateFont(15, 0, 0, 0,FW_SEMIBOLD, 0, 0, 0,
    GB2312_CHARSET, OUT_DEFAULT_PRECIS, 
    CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS, "宋体"); 
      CList.SetFont(&m_font); CList.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL);
    CList.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

    CImageList m_ImageList;//
    m_ImageList.Create(IDB_HeightInfo,1,1,RGB(0,0,0));
    GetListCtrl().SetImageList(&m_ImageList,LVSIL_STATE);       //下面可以设置列名之类的
      

  5.   

    上面不是说了吗View的基类选择CListView不就行了,或者基类选CFormView也行,和对话框用法一样。
      

  6.   

    用CFormView,然后上面放一个ListCtrl控件,这样就类似你们对话框上用列表控件一样的了
      

  7.   

    用CFormView,比较方便,这样你代码修改不大
      

  8.   


    我这里有个代码和讲解说明
    楼主参考下
    相信对你有用
    http://www.cnitblog.com/buf/archive/2008/04/12/42270.html
      

  9.   

    用CListView,直接在View中使用GetListCtrl()就能过的列表的指针,非常方便
      

  10.   

    这个我做过,我觉得吧,用 ListView 不一定就是最优的方案,视具体情况而定。
    比如,我完全可以使用 CView,然后动态创建 ListCtrl 来填充整个视图,
    这在 VS2008 sp1 或者 BCG 中很有用。
    因为默认的 ListView 相当于个 CListCtrl,而我自己创建的,我可以使用 CMFCListCtrl(支持更多扩展功能)。给你个我以前写的例子://.h file
        protected:
            CMFCListCtrl m_wndTaskScheduleList;//.cpp file
    int CXXXView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
        if (CView::OnCreate(lpCreateStruct) == -1)
            return -1;    // TODO:  在此添加您专用的创建代码    // 创建任务栏列表
        CRect rcDummyRect(0, 0, 0, 0);
        if (!m_wndTaskScheduleList.GetSafeHwnd())
        {
            m_wndTaskScheduleList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rcDummyRect, this, IDC_TASK_SCHEDULE_LIST);
        }    //...其他代码
    }void CXXXView::OnSize(UINT nType, int cx, int cy)
    {
        CView::OnSize(nType, cx, cy);    // TODO: 在此处添加消息处理程序代码
        m_wndTaskScheduleList.MoveWindow(0, 0, cx, cy);
    }
    这样就 OK 了。完全满足你的要求。
      

  11.   

    就是你说的这个意思   但是我不怎么懂创建CListCtrl,我做的是对话框的
      

  12.   


    看你上面的回复和这个意思不一样啊?
    你问说视图,那视图肯定不是基于对话框的啊!如果是对话框,你直接放个 CListCtrl 到对话框上,再手动在 .h 文件中改成你自己的类名就是了
      

  13.   

    [code=INIFile]
    如果用CListView,View中使用GetListCtrl()即可得到LIstCtrl的指针;
    或者用CFormView,就如同用DialogBox一样
    坚持用CView,定义一个CListCtrl对象,进行Create,风格中要有WS_VISIBLE和WS_CHILD。
    [/code]