各位高手,请教一下哈。我刚刚接触C++,在一个小项目中会大量用到List Control,所以就想着是不是可以继承CListCtrl得到一个类,在这个类中确定控件的风格,显示的数据等等。不知道这个能不能实现呢?
希望高手举一个例子,比如在这个类中把View属性的值改为Report。
万分感激!

解决方案 »

  1.   

    可以
    在SubclassWindow里调用SetExtendStyle和SetStyle
      

  2.   

    用Create来创建控件,结合SetExtendStyle使用,这样就能指定控件风格了
      

  3.   

    在这个类中确定控件的风格,显示的数据等等,直接使用List Control,用1、2楼的方法设定参数就可以了。
    若是设定复杂的功能,比如,使CListCtrl具有编辑功能,才需要继承CListCtrl得到一个类,在这个类中实现特殊功能。
    网上有代码,自己搜。
      

  4.   

    ModifyStyle(),SetExtendedStyle()
    这些能定义常用的风格,比如你想改变clistctrl中格子的
    颜色,高度,在格子中画图形等等,你可以继承CLISTCTLR类,
    重载它的drawitem,你查一查这个函数,再找个例子看一下吧
      

  5.   

    首先感谢各位高手的热心解答!!
    其实也许是我表达不清楚吧,各位高手的回答跟我的意思有一定的偏差,不过还是引导着我走向了正确的道路。但是我觉得就这样结贴不太负责任,所以决定补充一下哈!
    还有,我觉得以后发帖子,结贴的时候应该就只保留有用的,这样坐也比较负责任,不知道合不合适哈
    首先添加一个MFC类,继承自CListCtrl。
    然后在类中添加如下重载构造函数:
    CReportListCtrl::CReportListCtrl(UINT uID,CWnd* pParent)
    {
    CListCtrl *p_ReportList=new CListCtrl();
    CRect rect(50,50,500,300);
    p_ReportList->Create(LVS_REPORT,rect,pParent,uID);
    p_ReportList->ShowWindow(SW_SHOW); p_ReportList->InsertColumn(0,_T("用户名"),2,50,-1);
    p_ReportList->InsertColumn(1,_T("备注"),2,50,-1);//设置列

    int size=50;//以下部分自己定义,或者引用自己定义的其他函数等等
    int index=0;
    for(;index<size;index++)//设置行
    {
    p_ReportList->InsertItem(index,_T(""));
    p_ReportList->SetItemText(index,0,_T("hello"));
    p_ReportList->SetItemText(index,1,_T("friend"));
    }
    }
    这样就可以收到比较符合我目的的效果了。
    不知道是不是有问题啊
    经测试可以运行的。