首    页 界面/窗口 网络/通讯 数据库 组件开发 图像/多媒体 NET/Web 其它技术 源码下载 资料下载 软件共享 软件外包 曲艺杂谈
栏目导航:  首    页  |  界面/窗口  |  列表控件   


 ListCtrl以及一个派生类


原作者:蓝天    源出处:CSDN    发布者:施昌权    发布类型:转载    发布日期:2008-09-25


       1.1 列表视图的视图风格:

       LVS_ICON;    LVS_SMALLICON;      LVS_LIST;           LVS_REPORT;

       修改视图风格有三种方法:

       1.在属性对话框里面修改;

       2.ModifyStyle()修改; ModifyStyle(LVS_TYPEMASK, uiViewStyle);

       3.重载PreCreateWindow函数并修改cs.style结构

       1.2 获取列表视图列大小 GetColumnWidth(iCurrCol);//获取列大小和设置列的大小

       SetColumnWidth(int nCol,int cx); //cx可以用一下两个常量之一

       1.   LVSCW_AUTOSIZE;             //根据列中最宽的文本设置列

       2.   LVSCW_AUTOSIZE_USEHEADER;       //列的大小足够显示列标题文本

       1.3 禁止或允许列表视图重绘SetRedraw(FALSE);//在重定列表视图大小时停止绘制
       1.4 给列表视图添加列InsertColumn(),列的对齐方式有以下几种

       LVCFMT_LEFT;     LVCFMT_RIGHT;       LVCFMT_CENTER;
       1.5
插入列表视图项:InsertItem()SetItemText();
       1.6
创建和关联CImageList对象:

       m_imageLarge.Create(IDB_BITMAP, 20, 0, RGB(255,255,255));

       listCtrl.SetImageList(&m_imageLarge, LVSIL_NORMAL);

       // small icon image list

       m_imageSmall.Create(IDB_BITMAP, 20, 0, RGB(255,255,255));

       listCtrl.SetImageList(&m_imageSmall, LVSIL_SMALL);    

       #pragma once

       //CMyListCtrl.h定义文件

       struct COLUMNINFO {

              //插入列表视图时候的数据结构

              LPTSTR lptstr;      //列名

              UINT uiFormat;      //列显示格式

              int iLen;          //列长度

       }; 

       // CMyListCtrl

       class CMyListCtrl : public CListCtrl

       {

              DECLARE_DYNAMIC(CMyListCtrl) 

       public:

              CMyListCtrl();

              virtual ~CMyListCtrl(); 

       protected:

              DECLARE_MESSAGE_MAP()

       public:

              void InitColumn(COLUMNINFO* columninfo, int iSize);

              void SizeAllColumns(void);

              void SetView(UINT uiViewStyle);

       };

       inline void CMyListCtrl::SetView(UINT uiViewStyle)

       {

              ModifyStyle(LVS_TYPEMASK, uiViewStyle);

              //设置列表视图的风格,LVS_ICON;LVS_SMALLICON;LVS_LIST;LVS_REPORT四种;

       }  

       // MyListCtrl.cpp : 实现文件

       // 

       #include "stdafx.h"

       #include "TreeCtrl.h"

       #include "MyListCtrl.h"

       #include ".\mylistctrl.h"  

       // CMyListCtrl 

       IMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)

       CMyListCtrl::CMyListCtrl()

       {

       }

 

       CMyListCtrl::~CMyListCtrl()

       {

       } 

       BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)

       END_MESSAGE_MAP() 

       // CMyListCtrl 消息处理程序  

       void CMyListCtrl::InitColumn(COLUMNINFO* columninfo, int iSize)

       {

              for(int i=0;i<iSize;++i)

              {

                     InsertColumn(i,columninfo[i].lptstr,columninfo[i].uiFormat,columninfo[i].iLen);

              }  

       } 

       void CMyListCtrl::SizeAllColumns(void)

       //调整树视图

       {

              CHeaderCtrl*pHead=GetHeaderCtrl();

              //获取列头

 

              ASSERT(pHead);

              if (pHead)

              {

                     SetRedraw(FALSE);       //在重定列表视图大小时停止绘制

                     for (int iCurrCol=0;iCurrCol<pHead->GetItemCount();++iCurrCol)

                     {

                            SetColumnWidth(iCurrCol,LVSCW_AUTOSIZE);

                            //LVSCW_AUTOSIZE 根据列中最大的文本设置列大小

                            int nCurrWith=GetColumnWidth(iCurrCol);//获取列大小

                            SetColumnWidth(iCurrCol,LVSCW_AUTOSIZE_USEHEADER);

                            //LVSCW_AUTOSIZE_USEHEADER根据列标题大小设置列大小

                            int nColHdrWidth=GetColumnWidth(iCurrCol);

                            SetColumnWidth(iCurrCol,max(nColHdrWidth,nCurrWith));

                     }

                     SetRedraw();            //让其可以重新绘制

                     Invalidate();

              }         

       }


关于我们 版权声明 广告服务 联系我们 友情链接 加入收藏
站长:施昌权    Email:scq2099yt@163.com    MSN:scq2099yt@live.cn    QQ:14046300    本站QQ群:67202409
Copyright © 2008     卓为VC(www.joyvc.cn)    All Rights Reserved    建议分辨率 1024×768
本站由施昌权制作维护
京ICP备09012297号