精华内容
下载资源
问答
  • 列表视图控件

    2021-04-03 20:01:06
    源码MGSpotyViewController,MGSpotyViewController是一个漂亮的列表视图控件,具有类似Spotify中的炫酷特效。 测试环境:Xcode 5.0,iOS 4.3以上 Beautiful viewController with a tableView and amazing ...
  • 关于列表视图控件的学习
  • 列表视图控件的使用实例
  • ListView列表视图控件

    千次阅读 2016-01-22 17:23:05
    ListView列表视图控件通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。还可以把包含在控件中的数据显示为列和行(像网格一样),或者显示为一列,或者显示为图标表示。 其实列表视图控件的作用,就像...

    ListView列表视图控件通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。还可以把包含在控件中的数据显示为列和行(像网格一样),或者显示为一列,或者显示为图标表示。

    其实列表视图控件的作用,就像我们平时浏览windows文件夹一样,可以以“列表”、“平铺”、“详细信息”、“大图标”等方式显示某一目录下的文件夹和文件。

    1. ListView控件的属性

    Activation

    使用这个属性,可以控制用户在列表视图中激活选项的方式,可能的值如下:

    Standard:这个设置是用户为自己的计算机选择的值;

    OneClick:单击一个选项,激活它;

    TwoClick:双击一个选项,激活它。

    Alignment

    这个属性可以控制列表视图中选项的对齐方式,有4个可能的值:

    Default:如果用户拖放一个选项,它将仍位于拖动前的位置;

    Left:选项与ListView控件的左边界对齐;

    Top:选项与ListView控件的顶边界对齐;

    SnapToGridListView控件包含一个不可见的网格,选项都放在该网格中。

    AllowColumnReorder

    如果把这个属性设为true,就允许用户改变列表视图中列的顺序。

    AutoArrange

    如果把这个属性设置为true,选项会自动根据Alignment属性排序。如果用户把一个选项拖放到列表视图的中央,且AlignmentLeft,则选项会自动左对齐。只有在View属性是LargeIconSmallIcon时,这个属性才有意义。

    CheckBoxes

    如果把这个属性设置为true,列表视图中的每个选项会在其左边显示一个复选框。只有在View属性是DetailList时,这个属性才有意义。

    CheckedIndices

    CheckedItems

    这两个属性可以分别访问索引和选项的集合,该集合包含列表中被选中的选项。

    Columns

    列表视图可以包含列。通过这个属性可以访问列集合,通过该集合,可以增加或删除列。

    FocusedItem

    这个属性包含列表视图中有焦点的选项。如果没有选择任何选项,该属性就为null

    FullRowSelect

    这个属性为true时,单击一个选项,该选项所在的整行文本都会突出显示。如果该属性为false,则只选项本身会突出显示。

    GridLines

    把这个属性设置为true,则列表视图会在行和列之间绘制网格线。只有View属性为Details时,这个属性才有意义。

    HeaderStyle

    可以控制列标题的显示方法,有3中样式:

    Clickable:列标题显示为一个按钮;

    NonClickable:列标题不响应鼠标单击事件;

    None:不显示列标题。

    HoverSelection

    这个属性为true时,用户可以把鼠标指针放在列表视图的一个选项上,以选择它。

    Items

    列表视图中的选项集合。

    LabelEdit

    这个属性设置为true时,用户可以在Details视图下编辑第一列的内容。

    LabelWrap

    这个属性设置为true时,标签就会自动换行,以便显示所有文本。

    LargeImageList

    这个属性包含ImageList,而ImageList包含大图像。这些图像可以在View属性为LargeIcon时使用。

    MultiSelect

    这个属性设置为true时,用户可以选择多个选项。

    Scrollable

    这个属性设置为true时,就显示滚动条。

    SelectedIndices

    SelectedItems

    这两个属性分别包含选中索引和选项的集合。

    SmallImageList

    View属性为SmallIcon时,这个属性包含了ImageList,其中ImageList包含了要使用的图像。

    Sorting

    可以让列表视图对它包含的选项排序,有3中模式:AscendingDescendingNone

    StateImageList

    ImageList包含图像的蒙版,这些图像蒙版可用作LargeImageListSmallImageList图像的覆盖图,表示定制的状态

    TopItem

    返回列表视图顶部的选项

    View

    列表视图可以用4种不同的基本模式显示其选项:

    LargeIcon:所有选项都在其旁边显示一个大图标(32*32)和一个标签;

    SmallIcon:所有选项都在其旁边显示一个大图标(16*16)和一个标签;

    List:只显示一列,该列可以包含一个图标和一个标签;

    Details:可以显示任意数量的列,只有第一列可以包含图标;

    Tile:显示一个大图标和一个标签,在图标的右边显示子项信息;


    2. ListView控件的方法

    方法

    说明

    BeginUpdate()

    调用这个方法,将告诉列表视图开始更新,直到调用EndUpdate()为止。当一次插入多个选项时,使用这个方法很有用,因为它会禁止视图,大大提高速度。

    Clear()

    彻底清除列表视图,删除所有的选项和列。

    EndUpdate()

    在调用BeginUpdate()之后调用这个方法,在调用这个方法时,列表视图会显示其所有选项。

    EnsureVisible()

    在调用这个方法时,列表视图会滚动,以显示指定索引的选项

    GetItemAt()

    返回列表视图中位于x,y位置的选项


    3. ListView控件的事件

    事件

    说明

    AfterLabelEdit

    在编辑了标签后,引发该事件

    BeforeLabelEdit

    在用户开始编辑标签前,引发该事件

    ColumnClick

    在单击一个列时,引发该事件

    ItemActivate

    在激活一个选项时,引发该事件


    4. ListViewItem

    列表视图中的选项总是ListViewItem类的一个实例。ListViewItem包含要显示的信息,如文本和图标的索引。ListViewItem对象有一个SubItems属性,包含ListViewSubItem类的实例。ListView控件处于DetailsTile模式下,这些子选项就会显示出来。子选项和主选项之间的区别是子选项不能显示图标。


    5. ColumnHeader

    要使列表视图显示列标题,需要把类ColumnHeader的实例添加到ListViewColumns集合中。


    6.ImageList控件

    ImageList图像列表控件提供了一个集合,可以用于存储在窗体的其他控件中使用的图像。可以在图像列表中存储任意大小的图像,但同一个图像列表控件中的每个图像的大小必须相同。对于ListView,则需要两个ImageList控件,显示大图像和小图像。

    ImageList图像列表控件位于“工具箱”中“组件”类别。


    7.示例

    以下示例代码是以ListView控件显示C盘目录下的文件夹和文件,支持“List”、“Details”等多种方式的切换,支持访问下层目录和返回上一级目录。初始显示方式是以“Details”详细信息的方式显示,包含“Filename”、“size”和“Last accessed”三个列标题。

    using System.IO;
    
    namespace Ch15Ex01
    {
        public partial class Form1 : Form
        {
            private System.Collections.Specialized.StringCollection folderCol;
    
            //创建列标题,并添加到列表视图控件中
            private void CreateHeadersAndFillListView()
            {
                ColumnHeader colHead;
    
                //添加“Filename”列标题
                colHead      = new ColumnHeader();
                colHead.Text = "Filename";
                ListViewFileAndFloder.Columns.Add(colHead);
    
                //添加“Size”列标题
                colHead      = new ColumnHeader();
                colHead.Text = "Size";
                ListViewFileAndFloder.Columns.Add(colHead);
    
                //添加“Last accessed”列标题
                colHead      = new ColumnHeader();
                colHead.Text = "Last accessed";
                ListViewFileAndFloder.Columns.Add(colHead);
            }
    
            private void PaintListView(string root)
            {
                try
                {
                    ListViewItem lvi;
                    ListViewItem.ListViewSubItem lvsi;
    
                    if (string.IsNullOrEmpty(root)) return;
    
                    //当前目录
                    DirectoryInfo dir = new DirectoryInfo(root);
    
                    //当前目录的所有子目录,即文件夹
                    DirectoryInfo[] dirs = dir.GetDirectories();
    
                    //当前目录下的文件
                    FileInfo[] files = dir.GetFiles(); 
    
                    //清空
                    ListViewFileAndFloder.Items.Clear();
    
                    ListViewFileAndFloder.BeginUpdate();
    
                    //遍历所有文件夹
                    foreach (DirectoryInfo di in dirs)
                    {
                        lvi = new ListViewItem();
                        lvi.Text = di.Name;     //保存文件夹名
                        lvi.ImageIndex = 0;     //索引为0
                        lvi.Tag = di.FullName;  //保存文件夹完全路径
    
                        //如果是文件夹则忽略文件夹的大小
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = "";           
                        lvi.SubItems.Add(lvsi);
    
                        //最后访问时间
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = di.LastAccessTime.ToString();  
                        lvi.SubItems.Add(lvsi);
    
                        //添加到Items集合中
                        ListViewFileAndFloder.Items.Add(lvi); 
                    }
    
                    foreach (FileInfo fi in files)
                    {
                        lvi = new ListViewItem();
    
                        lvi.Text = fi.Name;    //保存文件名
                        lvi.ImageIndex = 1;    //索引为0
                        lvi.Tag = fi.FullName; //保存文件完全路径
    
                        //获得文件大小
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = fi.Length.ToString();
                        lvi.SubItems.Add(lvsi);
    
                        //最后访问时间
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = fi.LastAccessTime.ToString();     
                        lvi.SubItems.Add(lvsi);
    
                        //添加到Items集合中
                        ListViewFileAndFloder.Items.Add(lvi);
                    }
    
                    ListViewFileAndFloder.EndUpdate();
                }
                catch (System.Exception err)
                {
                    MessageBox.Show("Error:"+ err.Message);
                }
    
            }
    
            public Form1()
            {
                InitializeComponent();
    
                folderCol = new System.Collections.Specialized.StringCollection();
    
                //为列表视图控件创建列标题
                CreateHeadersAndFillListView();
    
                //绘制C盘目录下的文件夹和文件
                PaintListView(@"C:\");
    
                //添加C盘搜索目录
                folderCol.Add(@"C:\");
            }
    
            //列表视图控件的显示模式切换为大图标模式
            private void radioButton1_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
    
                if (rdb.Checked)
                {
                    ListViewFileAndFloder.View = View.LargeIcon;
                }
            }
    
            //列表视图控件的显示模式切换为小图标模式
            private void radioButton2_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
    
                if (rdb.Checked)
                {
                    ListViewFileAndFloder.View = View.SmallIcon;
                }
            }
    
            //列表视图控件的显示模式切换为列表模式
            private void radioButton3_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
    
                if (rdb.Checked)
                {
                    ListViewFileAndFloder.View = View.List;
                }
            }
    
            //列表视图控件的显示模式切换为详细信息模式
            private void radioButton4_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
    
                if (rdb.Checked)
                {
                    ListViewFileAndFloder.View = View.Details;
                }
            }
    
            //列表视图控件的显示模式切换为平铺模式
            private void radioButton5_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
    
                if (rdb.Checked)
                {
                    ListViewFileAndFloder.View = View.Tile;
                }
            }
    
            //点击“back”按钮,返回上级目录
            //其原理是确保folderCol集合中最后一个选项始终为当前目录的完整路径
            private void buttonBack_Click(object sender, EventArgs e)
            {
                if (folderCol.Count > 1)
                {
                    PaintListView(folderCol[folderCol.Count - 2].ToString());
                    folderCol.RemoveAt(folderCol.Count - 1);
                }
                else
                {
                    PaintListView(folderCol[0].ToString());
                }
     
            }
    
            //双击控件中的每一文件夹或文件继续访问
            private void ListViewFileAndFloder_ItemActivate(object sender, EventArgs e)
            {
                ListView lw = (ListView)sender;
                string filename = lw.SelectedItems[0].Tag.ToString();
    
                if (lw.SelectedItems[0].ImageIndex != 0)
                {
                    try
                    {
                        //打开文件
                        System.Diagnostics.Process.Start(filename);
                    }
                    catch
                    {
                        return;
                    }
                }
                else
                {
                    PaintListView(filename);
                    folderCol.Add(filename);
                }
            }
        }
    }

    其初始显示结果如下图所示:

    将显示模式切换为“Title”,显示如下:


    其中文件夹和文件图标是外部导入的ico图标,保存在ImageList控件中。

    

    展开全文
  • 本例演示列表视图控件的使用,包括两个部分:一部分为列表视图控件使用实例的实现,另一部分为列表视图控件属性设置功能的实现。希望能对大家理解CListCtrl类有所帮助。
  • C#多方式数据显示——列表视图控件实例C#多方式数据显示——列表视图控件实例C#多方式数据显示——列表视图控件实例
  • 里面详细介绍了c#使用列表视图控件例子。
  • 列表视图控件的创建

    2017-10-28 14:25:28
    列表视图控件的创建  MFC同样为列表视图控件的操作提供了CListCtrl类。  如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create...

    列表视图控件的创建

           MFC同样为列表视图控件的操作提供了CListCtrl类。

           如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下:

    virtual BOOL Create(
       DWORD dwStyle,
       const RECT& rect,
       CWnd* pParentWnd,
       UINT nID 
    );

           参数rect为列表视图控件的位置和尺寸,pParentWnd为指向父窗口的指针,nID指定列表视图控件的ID,最复杂的一个参数同样还是dwStyle,它用于设定列表视图控件的风格,可以是以下风格的组合:

                   风格                                                含义
           LVS_ALIGNLEFT                        显示格式是大图标或小图标时,标签放在图标的左边
           LVS_ALIGNTOP                         显示格式是大图标或小图标时,标题放在图标的上边
           LVS_AUTOARRANGE                 显示格式是大图标或小图标时,自动排列控件中的列表项
           LVS_EDITLABELS                      用户可以修改标签文本
           LVS_ICON                                 指定大图标显示格式
           LVS_LIST                                  指定列表显示格式
           LVS_NOCOLUMNHEADER         在报表格式中不显示列的表头
           LVS_NOLABELWRAP                显示格式是大图标时,使标签文本单行显示。默认是多行显示
           LVS_NOSCROLL                       列表视图控件无滚动条,此风格不能与LVS_LIST或LVS_REPORT组合使用
           LVS_NOSORTHEADER              报表格式的列表视图控件的表头不能作为排序按钮使用
           LVS_OWNERDRAWFIXED        由控件的拥有者负责绘制表项
           LVS_REPORT                           指定报表显示格式
           LVS_SHAREIMAGELISTS           使列表视图共享图像序列
           LVS_SHOWSELALWAYS           即使控件失去输入焦点,仍显示出项的选择状态
           LVS_SINGLESEL                       指定只能有一个列表项被选中。默认时可以多项选择
           LVS_SMALLICON                      指定小图标显示格式
           LVS_SORTASCENDING             按升序排列列表项
           LVS_SORTDESCENDING          按降序排列列表项

           与前面的控件一样,除了以上风格一般我们还要为列表视图控件设置WS_CHILD和WS_VISIBLE风格。对于直接在对话框模板中创建的列表视图控件,其属性页中的属性与上述风格是对应的,例如,属性Alignment默认为Left,也就等价于指定了LVS_ALIGNLEFT风格。

           CListCtrl类的主要成员函数

           CListCtrl类有很多成员函数,鸡啄米这里就为大家介绍几个常用的主要成员函数。

           UINT GetSelectedCount( ) const;

           该函数返回列表视图控件中被选择列表项的数量。

           POSITION GetFirstSelectedItemPosition( ) const;

           获取列表视图控件中第一个被选择项的位置。返回的POSITION值可以用来迭代来获取其他选择项,可以当作参数传入下面的GetNextSelectedItem函数来获得选择项的索引。如果没有被选择项则返回NULL。

           int GetNextSelectedItem(POSITION& pos) const;

           该函数获取由pos指定的列表项的索引,然后将pos设置为下一个位置的POSITION值。参数pos为之前调用GetNextSelectedItem或GetFirstSelectedItemPosition得到的POSITION值的引用。返回值就是pos指定列表项的索引。

           int GetItemCount( ) const;

           获取列表视图控件中列表项的数量。

           int InsertColumn(int nCol,const LVCOLUMN* pColumn );
           int InsertColumn(int nCol,LPCTSTR lpszColumnHeading,int nFormat = LVCFMT_LEFT,int nWidth = -1,int nSubItem = -1 );

           这两个函数用于在报表式列表视图控件中插入列。第一个函数中,nCol参数为插入列的索引,pColumn参数指向LVCOLUMN结构,其中包含了插入列的属性。第二个函数中,nCol参数也是插入列的索引,lpszColumnHeading参数为列标题字符串,nFormat参数为列中文本的对齐方式,可以是LVCFMT_LEFT、LVCFMT_RIGHT或LVCFMT_CENTER,nWidth参数为列宽,nSubItem为插入列对应列表子项的索引。两个函数在成功时都返回新列的索引,失败都返回-1。

           BOOL DeleteColumn(int nCol);

           该函数用于删除列表视图控件中的某列。参数nCol为删除列的索引。删除成功则返回TRUE,失败返回FALSE。

           int InsertItem(int nItem,LPCTSTR lpszItem);

           向列表视图控件中插入新的列表项。参数nItem为要插入项的索引,参数lpszItem为要插入项的标签字符串。如果插入成功则返回新列表项的索引,否则返回-1。

           BOOL DeleteItem(int nItem);

           从列表视图控件中删除某个列表项。参数nItem指定了要删除的列表项的索引。删除成功则返回TRUE,否则返回FALSE。

           CString GetItemText(int nItem,int nSubItem) const;

           获取指定列表项或列表子项的显示文本。参数nItem指定了列表项的索引,参数nSubItem指定了列表子项的索引。 

           BOOL SetItemText(int nItem,int nSubItem,LPCTSTR lpszText);

           设置指定列表项或列表子项的显示文本。参数nItem和nSubItem同GetItemText。参数lpszText为要设置的显示文本字符串。如果设置成功则返回TRUE,否则返回FALSE。

           DWORD_PTR GetItemData(int nItem) const;

           该函数用于获取指定列表项的附加32位数据。参数nItem为列表项的索引。返回值就是由nItem指定列表项的附加32位数据。

           BOOL SetItemData(int nItem,DWORD_PTR dwData);

           该函数用于为指定列表项设置附加32位是数据。参数nItem为列表项的索引,参数dwData为列表项的附加32位数据。

           CListCtrl类应用实例

           最后鸡啄米还是给大家写一个简单的实例,说明CListCtrl类的几个成员函数及通知消息等的使用方法。因为在开发中最常用的要属报表风格的List Control了,所以鸡啄米给大家写的是一个报表List Control的例子。

           此实例实现的功能:在单选列表视图控件中显示一个简单的编程语言排行榜,然后在用鼠标左键选择某列表项时,将选中列表项的文本显示到编辑框中。下面是具体实现步骤:

           1. 创建一个基于对话框的MFC工程,名称设置为“Example29”。

           2. 在自动生成的对话框模板IDD_EXAMPLE29_DIALOG中,删除“TODO: Place dialog controls here.”静态文本控件、“OK”按钮和“Cancel”按钮。添加一个List Control控件,ID设置为IDC_PROGRAM_LANG_LIST,View属性设为Report,即为报表风格,Single Selection属性设为True。再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为“选择的语言:”,编辑框的ID设为IDC_LANG_SEL_EDIT,Read Only属性设为True。此时的对话框模板如下图:

    列表视图控件对话框模板

           3. 为列表视图控件IDC_PROGRAM_LANG_LIST添加CListCtrl类型的控件变量m_programLangList。

           4. 在对话框初始化时,我们将编程语言排行榜加入到列表视图控件中,那么需要修改CExample29Dlg::OnInitDialog()函数为:

    C++代码
    1. BOOL CExample29Dlg::OnInitDialog()   
    2. {   
    3.     CDialogEx::OnInitDialog();   
    4.   
    5.     // Add "About..." menu item to system menu.   
    6.   
    7.     // IDM_ABOUTBOX must be in the system command range.   
    8.     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);   
    9.     ASSERT(IDM_ABOUTBOX < 0xF000);   
    10.   
    11.     CMenu* pSysMenu = GetSystemMenu(FALSE);   
    12.     if (pSysMenu != NULL)   
    13.     {   
    14.         BOOL bNameValid;   
    15.         CString strAboutMenu;   
    16.         bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);   
    17.         ASSERT(bNameValid);   
    18.         if (!strAboutMenu.IsEmpty())   
    19.         {   
    20.             pSysMenu->AppendMenu(MF_SEPARATOR);   
    21.             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);   
    22.         }   
    23.     }   
    24.   
    25.     // Set the icon for this dialog.  The framework does this automatically   
    26.     //  when the application's main window is not a dialog   
    27.     SetIcon(m_hIcon, TRUE);         // Set big icon   
    28.     SetIcon(m_hIcon, FALSE);        // Set small icon   
    29.   
    30.     // TODO: Add extra initialization here   
    31.     CRect rect;   
    32.   
    33.     // 获取编程语言列表视图控件的位置和大小   
    34.     m_programLangList.GetClientRect(&rect);   
    35.   
    36.     // 为列表视图控件添加全行选中和栅格风格   
    37.     m_programLangList.SetExtendedStyle(m_programLangList.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);   
    38.   
    39.     // 为列表视图控件添加三列   
    40.     m_programLangList.InsertColumn(0, _T("语言"), LVCFMT_CENTER, rect.Width()/3, 0);   
    41.     m_programLangList.InsertColumn(1, _T("2012.02排名"), LVCFMT_CENTER, rect.Width()/3, 1);   
    42.     m_programLangList.InsertColumn(2, _T("2011.02排名"), LVCFMT_CENTER, rect.Width()/3, 2);   
    43.   
    44.     // 在列表视图控件中插入列表项,并设置列表子项文本   
    45.     m_programLangList.InsertItem(0, _T("Java"));   
    46.     m_programLangList.SetItemText(0, 1, _T("1"));   
    47.     m_programLangList.SetItemText(0, 2, _T("1"));   
    48.     m_programLangList.InsertItem(1, _T("C"));   
    49.     m_programLangList.SetItemText(1, 1, _T("2"));   
    50.     m_programLangList.SetItemText(1, 2, _T("2"));   
    51.     m_programLangList.InsertItem(2, _T("C#"));   
    52.     m_programLangList.SetItemText(2, 1, _T("3"));   
    53.     m_programLangList.SetItemText(2, 2, _T("6"));   
    54.     m_programLangList.InsertItem(3, _T("C++"));   
    55.     m_programLangList.SetItemText(3, 1, _T("4"));   
    56.     m_programLangList.SetItemText(3, 2, _T("3"));   
    57.   
    58.     return TRUE;  // return TRUE  unless you set the focus to a control   
    59. }  

           5. 我们希望在选中列表项改变时,将最新的选择项实时显示到编辑框中,那么可以使用NM_CLICK通知消息。为列表框IDC_PROGRAM_LANG_LIST的通知消息NM_CLICK添加消息处理函数CExample29Dlg::OnNMClickProgramLangList,并修改如下:

    C++代码
    1. void CExample29Dlg::OnNMClickProgramLangList(NMHDR *pNMHDR, LRESULT *pResult)   
    2. {   
    3.     LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);   
    4.     // TODO: Add your control notification handler code here   
    5.     *pResult = 0;   
    6.   
    7.     CString strLangName;    // 选择语言的名称字符串   
    8.     NMLISTVIEW *pNMListView = (NMLISTVIEW*)pNMHDR;   
    9.   
    10.     if (-1 != pNMListView->iItem)        // 如果iItem不是-1,就说明有列表项被选择   
    11.     {   
    12.         // 获取被选择列表项第一个子项的文本   
    13.         strLangName = m_programLangList.GetItemText(pNMListView->iItem, 0);   
    14.         // 将选择的语言显示与编辑框中   
    15.         SetDlgItemText(IDC_LANG_SEL_EDIT, strLangName);   
    16.     }   
    17. }  

           6. 运行程序,弹出结果对话框,在对话框的列表框中用鼠标改变选中项时,编辑框中的显示会相应改变。效果图如下:

    列表视图控件开发实例界面

    展开全文
  • 列表视图控件主要功能是将对象(文件、图片、项目)等通过列表的形式展示出来。就像我们在windows操作系统中点开每个文件夹之后对于文件夹下的文件,都是一种列表视图。我们可以选择大图标视图、小图标视图、详细信息...

    列表视图控件主要功能是将对象(文件、图片、项目)等通过列表的形式展示出来。就像我们在windows操作系统中点开每个文件夹之后对于文件夹下的文件,都是一种列表视图。我们可以选择大图标视图、小图标视图、详细信息视图等。


    列表视图控件的常用属性:

    Items属性:项目集合,里面包含列表视图的所有项目。该集合中成员的数据类型是:ListViewItem。

    下面先详细讲解ListViewItem的属性,也就是视图控件中的每个项目所具有的常用属性:

    BackColor属性:ListViewItem项目的颜色属性。

    Font属性:ListViewItem项目的字体属性。

    ForeColor:ListViewItem项目的字的颜色属性。

    Text属性:ListViewItem项目的名称属性。

    ImageIndex属性:该ListViewItem项目的图标在listView控件中绑定的图标库(imagelist控件)中对应的图标的索引。(以索引形式设置)。

    ImageKey属性:该ListViewItem项目的图标在listView控件中绑定的图标库中对应的图标的名称(图标文件名)。

    SubItems属性:设置listView控件Columns集合的第二个开始的listViewSubitem的值。


    列表视图控件的常用属性:

    LargeImageList:大图标图片集合,常与imageList控件绑定。

    SmallImageList:小图标图片集合,常与imageList控件绑定。


    常用事件:

    SelectedIndexChanged事件:用户选定的项改变之后发生。




    展开全文
  • 列表视图控件List Control

    千次阅读 2016-03-16 10:38:36
    列表视图控件简介  列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。  列表视图控件是对前面讲到的...

         列表视图控件简介

           列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。

           列表视图控件是对前面讲到的列表框控件List Box的改进和延伸。列表视图控件的列表项一般有图标(Icon)和标签(Label)两部分。图标是对列表项的图形描述,标签是文字描述。当然列表项可以只包含图标也可以只包含标签。

           列表视图控件有4种风格:Icon、Small Icon、List和Report。下面简单说下4种风格各自的特点:

           Icon大图标风格:列表项的图标通常为32×32像素,在图标的下面显示标签。

           Small Icon小图标风格:列表项的图标通常为16×16像素,在图标的右面显示标签。

           List列表风格:与小图标风格类似,图标和文字的对齐方式不同。

           Report报表风格:列表视图控件可以包含一个列表头来描述各列的含义。每行显示一个列表项,通常可以包含多个列表子项。最左边的列表子项的标签左边可以添加一个图标,而它右边的所有子项则只能显示文字。这种风格的列表视图控件很适合做各种报表。

           列表视图控件的通知消息

           鸡啄米在VS2010/MFC编程入门之五(MFC消息映射机制概述)中的“各种Windows消息的消息处理函数”部分,就曾以列表视图控件为例简单讲了WM_NOTIFY通知消息及其消息映射入口和消息处理函数的形式。如果你忘记了可以回到第五节看一看,回忆一下。

           鸡啄米这里给出下一节中将要演示的列表视图控件实例中,通知码为NM_CLICK的通知消息的消息映射入口:

           ON_NOTIFY(NM_CLICK, IDC_PROGRAM_LANG_LIST, &CExample29Dlg::OnNMClickProgramLangList)

           还有消息处理函数自动生成时的形式:

    C++代码
    1. void CExample29Dlg::OnNMClickProgramLangList(NMHDR *pNMHDR, LRESULT *pResult)   
    2. {   
    3.     LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);   
    4.     // TODO: Add your control notification handler code here   
    5.     *pResult = 0;   
    6. }  

           我们看到,上面的代码中将NMHDR指针类型的pNMHDR强制转换为LPNMITEMACTIVATE类型的pNMItemActivate,那么我们就可以在函数中通过pNMHDR来访问NMHDR结构,也可以通过pNMItemActive指针变量来访问第一个元素为NMHDR结构体变量的扩充结构。

           当然列表视图控件还有一些自己特有的通知消息,下面就介绍几个其中比较常用的。

           LVN_ITEMCHANGING 和LVN_ITEMCHANGED:当列表视图的状态发生变化时,会发送这两个通知消息。例如,当用户选择了新的列表项时,程序就会收到这两个消息。
    消息会附带一个指向NMLISTVIEW 结构的指针,消息处理函数可从该结构中获得状态信息。两个消息的不同之处在于,前者的消息处理函数如果返回TRUE,那么就阻
    止选择的改变,如果返回FALSE,则允许改变。

           LVN_KEYDOWN:该消息表明了一个键盘事件。消息会附带一个指向NMLVKEYDOWN结构的指针,通过该结构程序可以获得按键的信息。

           LVN_BEGINLABELEDIT 和LVN_ENDLABELEDIT:分别在用户开始编辑和结束编辑标题时发送。消息会附带一个指向NMLVDISPINFO结构的指针。在前者的消息处理函数中,可以调用GetEditControl成员函数返回一个指向用于编辑标题的编辑框的指针,如果处理函数返回FALSE,则允许编辑,如果返回TRUE,则禁止编辑。在后者的消息处理函数中,NMLVDISPINFO结构中的item.pszText指向编辑后的新标题,如果pszText 为NULL,那么说明用户放弃了编辑,否则,程序应负责更新表项的标题,这可以由SetItem或SetItemText函数来完成。

    VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)

           列表视图控件的相关结构体

           下面我们来介绍一下与列表视图控件有关的一些结构体。

           1. NMHDR结构体

    C++代码
    1. typedef struct tagNMHDR {   
    2.     HWND hwndFrom;     // 控件窗口的句柄   
    3.      UINT_PTR idFrom;   // 控件ID   
    4.     UINT code;         // 控件的通知消息码   
    5. } NMHDR;  

            此结构体在很多情况下都是其他扩充结构体的第一个元素,比如上面的NMITEMACTIVATE结构体:

    C++代码
    1. typedef struct tagNMITEMACTIVATE {   
    2.     NMHDR hdr;   
    3.     int iItem;   
    4.     int iSubItem;   
    5.     UINT uNewState;   
    6.     UINT uOldState;   
    7.     UINT uChanged;   
    8.     POINT ptAction;   
    9.     LPARAM lParam;   
    10.     UINT uKeyFlags;   
    11. } NMITEMACTIVATE, *LPNMITEMACTIVATE;  

           2. LVITEM 结构体

           该结构体包含了列表视图控件中列表项或列表子项的各种属性。

    C++代码
    1. typedef struct _LVITEM {    
    2.     UINT mask;           // 掩码位的组合(下面有对应掩码的元素都已在括号中标出掩码),表明哪些元素是有效的   
    3.     int iItem;           // 列表项的索引   
    4.     int iSubItem;        // 列表子项的索引   
    5.     UINT state;          // 状态,下面会列出。(LVIF_STATE)   
    6.     UINT stateMask;      // 状态掩码,用来说明要获取或设置哪些状态。下面会列出   
    7.     LPTSTR pszText;      // 指向列表项或列表子项的标签字符串。(LVIF_TEXT)   
    8.     int cchTextMax;      // pszText指向缓冲区的字符的个数,包括字符串结束符。(LVIF_TEXT)   
    9.     int iImage;          // 图标的索引。(LVIF_IMAGE)   
    10.     LPARAM lParam;       // 32位的附加数据。(LVIF_PARAM)   
    11. #if (_WIN32_IE >= 0x0300)   
    12.     int iIndent;   
    13. #endif   
    14. #if (_WIN32_WINNT >= 0x501)   
    15.     int iGroupId;   
    16.     UINT cColumns; // tile view columns   
    17.     PUINT puColumns;   
    18. #endif   
    19. #if (_WIN32_WINNT >= 0x0600)   
    20.     int* piColFmt;   
    21.     int iGroup;   
    22. #endif   
    23. } LVITEM, *LPLVITEM;  

            下面是state和stateMask的取值及含义:

            状态                     对应的状态掩码                   含义
            LVIS_CUT                     同左                 列表项或列表子项被选择用来进行剪切和粘贴操作
            LVIS_DROPHILITED      同左                 列表项或列表子项成为拖动操作的目标
            LVIS_FOCUSED            同左                 列表项或列表子项具有输入焦点
            LVIS_SELECTED           同左                 列表项或列表子项被选中

            3. LVCOLUMN结构体

            该结构体仅适用于Report报表式列表视图控件。在向列表控件中插入一列时需要用到此结构体。它包含了列表控件某列的各种属性。

    C++代码
    1. typedef struct _LVCOLUMN {    
    2.     UINT mask;              // 掩码位的组合(下面有对应掩码的元素都已在括号中标出掩码),表明哪些元素是有效的   
    3.     int fmt;                    // 该列的表头和列表子项的标签正文显示格式,可以是LVCFMT_CENTER、LVCFMT_LEFT或LVCFMT_RIGHT。(LVCF_FMT)   
    4.     int cx;                     // 以像素为单位的列的宽度。(LVCF_FMT)  
    5.     LPTSTR pszText;    // 指向列表头标题正文的字符串。(LVCF_TEXT)   
    6.     int cchTextMax;     // pszText指向缓冲区的字符的个数,包括字符串结束符。(LVCF_TEXT)   
    7.     int iSubItem;          // 该列的索引。(LVCF_SUBITEM)   
    8. #if (_WIN32_IE >= 0x0300)   
    9.     int iImage;   
    10.     int iOrder;   
    11. #endif   
    12. #if (_WIN32_WINNT >= 0x0600)   
    13.     int cxMin;   
    14.     int cxDefault;   
    15.     int cxIdeal;   
    16. #endif   
    17. } LVCOLUMN, *LPLVCOLUMN;  

           4. NMLISTVIEW结构体

           该结构体存放了列表视图控件通知消息的相关信息。列表视图控件的大部分通知消息都会附带指向该结构体的指针。

    C++代码
    1. typedef struct tagNMLISTVIEW {   
    2.     NMHDR hdr;       // 标准的NMHDR 结构   
    3.      int iItem;       // 列表项的索引   
    4.      int iSubItem;    // 列表子项的索引   
    5.      UINT uNewState;  // 列表项或列表子项的新状态   
    6.      UINT uOldState;  // 列表项或列表子项原来的状态   
    7.      UINT uChanged;   // 取值与LVITEM的mask成员相同,用来表明哪些状态发生了变化   
    8.      POINT ptAction;  // 事件发生时鼠标的客户区坐标   
    9.      LPARAM lParam;   //32位的附加数据   
    10. } NMLISTVIEW, *LPNMLISTVIEW;  

           有关列表视图控件的内容本节先讲这些,下节继续讲列表控件类CListCtrl的一些成员函数和应用实例,欢迎继续关注鸡啄米的VS2010/MFC教程。

           列表视图控件的创建

           MFC同样为列表视图控件的操作提供了CListCtrl类。

           如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下:

    virtual BOOL Create(
       DWORD dwStyle,
       const RECT& rect,
       CWnd* pParentWnd,
       UINT nID 
    );

           参数rect为列表视图控件的位置和尺寸,pParentWnd为指向父窗口的指针,nID指定列表视图控件的ID,最复杂的一个参数同样还是dwStyle,它用于设定列表视图控件的风格,可以是以下风格的组合:

                   风格                                                含义
           LVS_ALIGNLEFT                        显示格式是大图标或小图标时,标签放在图标的左边
           LVS_ALIGNTOP                         显示格式是大图标或小图标时,标题放在图标的上边
           LVS_AUTOARRANGE                 显示格式是大图标或小图标时,自动排列控件中的列表项
           LVS_EDITLABELS                      用户可以修改标签文本
           LVS_ICON                                 指定大图标显示格式
           LVS_LIST                                  指定列表显示格式
           LVS_NOCOLUMNHEADER         在报表格式中不显示列的表头
           LVS_NOLABELWRAP                显示格式是大图标时,使标签文本单行显示。默认是多行显示
           LVS_NOSCROLL                       列表视图控件无滚动条,此风格不能与LVS_LIST或LVS_REPORT组合使用
           LVS_NOSORTHEADER              报表格式的列表视图控件的表头不能作为排序按钮使用
           LVS_OWNERDRAWFIXED        由控件的拥有者负责绘制表项
           LVS_REPORT                           指定报表显示格式
           LVS_SHAREIMAGELISTS           使列表视图共享图像序列
           LVS_SHOWSELALWAYS           即使控件失去输入焦点,仍显示出项的选择状态
           LVS_SINGLESEL                       指定只能有一个列表项被选中。默认时可以多项选择
           LVS_SMALLICON                      指定小图标显示格式
           LVS_SORTASCENDING             按升序排列列表项
           LVS_SORTDESCENDING          按降序排列列表项

           与前面的控件一样,除了以上风格一般我们还要为列表视图控件设置WS_CHILD和WS_VISIBLE风格。对于直接在对话框模板中创建的列表视图控件,其属性页中的属性与上述风格是对应的,例如,属性Alignment默认为Left,也就等价于指定了LVS_ALIGNLEFT风格。

           CListCtrl类的主要成员函数

           CListCtrl类有很多成员函数,鸡啄米这里就为大家介绍几个常用的主要成员函数。

           UINT GetSelectedCount( ) const;

           该函数返回列表视图控件中被选择列表项的数量。

           POSITION GetFirstSelectedItemPosition( ) const;

           获取列表视图控件中第一个被选择项的位置。返回的POSITION值可以用来迭代来获取其他选择项,可以当作参数传入下面的GetNextSelectedItem函数来获得选择项的索引。如果没有被选择项则返回NULL。

           int GetNextSelectedItem(POSITION& pos) const;

           该函数获取由pos指定的列表项的索引,然后将pos设置为下一个位置的POSITION值。参数pos为之前调用GetNextSelectedItem或GetFirstSelectedItemPosition得到的POSITION值的引用。返回值就是pos指定列表项的索引。

           int GetItemCount( ) const;

           获取列表视图控件中列表项的数量。

           int InsertColumn(int nCol,const LVCOLUMN* pColumn );
           int InsertColumn(int nCol,LPCTSTR lpszColumnHeading,int nFormat = LVCFMT_LEFT,int nWidth = -1,int nSubItem = -1 );

           这两个函数用于在报表式列表视图控件中插入列。第一个函数中,nCol参数为插入列的索引,pColumn参数指向LVCOLUMN结构,其中包含了插入列的属性。第二个函数中,nCol参数也是插入列的索引,lpszColumnHeading参数为列标题字符串,nFormat参数为列中文本的对齐方式,可以是LVCFMT_LEFT、LVCFMT_RIGHT或LVCFMT_CENTER,nWidth参数为列宽,nSubItem为插入列对应列表子项的索引。两个函数在成功时都返回新列的索引,失败都返回-1。

           BOOL DeleteColumn(int nCol);

           该函数用于删除列表视图控件中的某列。参数nCol为删除列的索引。删除成功则返回TRUE,失败返回FALSE。

           int InsertItem(int nItem,LPCTSTR lpszItem);

           向列表视图控件中插入新的列表项。参数nItem为要插入项的索引,参数lpszItem为要插入项的标签字符串。如果插入成功则返回新列表项的索引,否则返回-1。

           BOOL DeleteItem(int nItem);

           从列表视图控件中删除某个列表项。参数nItem指定了要删除的列表项的索引。删除成功则返回TRUE,否则返回FALSE。

           CString GetItemText(int nItem,int nSubItem) const;

           获取指定列表项或列表子项的显示文本。参数nItem指定了列表项的索引,参数nSubItem指定了列表子项的索引。 

           BOOL SetItemText(int nItem,int nSubItem,LPCTSTR lpszText);

           设置指定列表项或列表子项的显示文本。参数nItem和nSubItem同GetItemText。参数lpszText为要设置的显示文本字符串。如果设置成功则返回TRUE,否则返回FALSE。

           DWORD_PTR GetItemData(int nItem) const;

           该函数用于获取指定列表项的附加32位数据。参数nItem为列表项的索引。返回值就是由nItem指定列表项的附加32位数据。

           BOOL SetItemData(int nItem,DWORD_PTR dwData);

           该函数用于为指定列表项设置附加32位是数据。参数nItem为列表项的索引,参数dwData为列表项的附加32位数据。

           CListCtrl类应用实例

           最后鸡啄米还是给大家写一个简单的实例,说明CListCtrl类的几个成员函数及通知消息等的使用方法。因为在开发中最常用的要属报表风格的List Control了,所以鸡啄米给大家写的是一个报表List Control的例子。

           此实例实现的功能:在单选列表视图控件中显示一个简单的编程语言排行榜,然后在用鼠标左键选择某列表项时,将选中列表项的文本显示到编辑框中。下面是具体实现步骤:

           1. 创建一个基于对话框的MFC工程,名称设置为“Example29”。

           2. 在自动生成的对话框模板IDD_EXAMPLE29_DIALOG中,删除“TODO: Place dialog controls here.”静态文本控件、“OK”按钮和“Cancel”按钮。添加一个List Control控件,ID设置为IDC_PROGRAM_LANG_LIST,View属性设为Report,即为报表风格,Single Selection属性设为True。再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为“选择的语言:”,编辑框的ID设为IDC_LANG_SEL_EDIT,Read Only属性设为True。此时的对话框模板如下图:

    列表视图控件对话框模板

           3. 为列表视图控件IDC_PROGRAM_LANG_LIST添加CListCtrl类型的控件变量m_programLangList。

           4. 在对话框初始化时,我们将编程语言排行榜加入到列表视图控件中,那么需要修改CExample29Dlg::OnInitDialog()函数为:

    C++代码
    1. BOOL CExample29Dlg::OnInitDialog()   
    2. {   
    3.     CDialogEx::OnInitDialog();   
    4.   
    5.     // Add "About..." menu item to system menu.   
    6.   
    7.     // IDM_ABOUTBOX must be in the system command range.   
    8.     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);   
    9.     ASSERT(IDM_ABOUTBOX < 0xF000);   
    10.   
    11.     CMenu* pSysMenu = GetSystemMenu(FALSE);   
    12.     if (pSysMenu != NULL)   
    13.     {   
    14.         BOOL bNameValid;   
    15.         CString strAboutMenu;   
    16.         bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);   
    17.         ASSERT(bNameValid);   
    18.         if (!strAboutMenu.IsEmpty())   
    19.         {   
    20.             pSysMenu->AppendMenu(MF_SEPARATOR);   
    21.             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);   
    22.         }   
    23.     }   
    24.   
    25.     // Set the icon for this dialog.  The framework does this automatically   
    26.     //  when the application's main window is not a dialog   
    27.     SetIcon(m_hIcon, TRUE);         // Set big icon   
    28.     SetIcon(m_hIcon, FALSE);        // Set small icon   
    29.   
    30.     // TODO: Add extra initialization here   
    31.     CRect rect;   
    32.   
    33.     // 获取编程语言列表视图控件的位置和大小   
    34.     m_programLangList.GetClientRect(&rect);   
    35.   
    36.     // 为列表视图控件添加全行选中和栅格风格   
    37.     m_programLangList.SetExtendedStyle(m_programLangList.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);   
    38.   
    39.     // 为列表视图控件添加三列   
    40.     m_programLangList.InsertColumn(0, _T("语言"), LVCFMT_CENTER, rect.Width()/3, 0);   
    41.     m_programLangList.InsertColumn(1, _T("2012.02排名"), LVCFMT_CENTER, rect.Width()/3, 1);   
    42.     m_programLangList.InsertColumn(2, _T("2011.02排名"), LVCFMT_CENTER, rect.Width()/3, 2);   
    43.   
    44.     // 在列表视图控件中插入列表项,并设置列表子项文本   
    45.     m_programLangList.InsertItem(0, _T("Java"));   
    46.     m_programLangList.SetItemText(0, 1, _T("1"));   
    47.     m_programLangList.SetItemText(0, 2, _T("1"));   
    48.     m_programLangList.InsertItem(1, _T("C"));   
    49.     m_programLangList.SetItemText(1, 1, _T("2"));   
    50.     m_programLangList.SetItemText(1, 2, _T("2"));   
    51.     m_programLangList.InsertItem(2, _T("C#"));   
    52.     m_programLangList.SetItemText(2, 1, _T("3"));   
    53.     m_programLangList.SetItemText(2, 2, _T("6"));   
    54.     m_programLangList.InsertItem(3, _T("C++"));   
    55.     m_programLangList.SetItemText(3, 1, _T("4"));   
    56.     m_programLangList.SetItemText(3, 2, _T("3"));   
    57.   
    58.     return TRUE;  // return TRUE  unless you set the focus to a control   
    59. }  

           5. 我们希望在选中列表项改变时,将最新的选择项实时显示到编辑框中,那么可以使用NM_CLICK通知消息。为列表框IDC_PROGRAM_LANG_LIST的通知消息NM_CLICK添加消息处理函数CExample29Dlg::OnNMClickProgramLangList,并修改如下:

    C++代码
    1. void CExample29Dlg::OnNMClickProgramLangList(NMHDR *pNMHDR, LRESULT *pResult)   
    2. {   
    3.     LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);   
    4.     // TODO: Add your control notification handler code here   
    5.     *pResult = 0;   
    6.   
    7.     CString strLangName;    // 选择语言的名称字符串   
    8.     NMLISTVIEW *pNMListView = (NMLISTVIEW*)pNMHDR;   
    9.   
    10.     if (-1 != pNMListView->iItem)        // 如果iItem不是-1,就说明有列表项被选择   
    11.     {   
    12.         // 获取被选择列表项第一个子项的文本   
    13.         strLangName = m_programLangList.GetItemText(pNMListView->iItem, 0);   
    14.         // 将选择的语言显示与编辑框中   
    15.         SetDlgItemText(IDC_LANG_SEL_EDIT, strLangName);   
    16.     }   
    17. }  

           6. 运行程序,弹出结果对话框,在对话框的列表框中用鼠标改变选中项时,编辑框中的显示会相应改变。效果图如下:

    列表视图控件开发实例界面

           关于列表视图控件List Control的内容总算讲完了,内容不少,但实际上这些还只是一部分,在实际开发中会遇到各种问题,需要大家去查阅MSDN或上网找资料等来解决。最后鸡啄米仍然感谢大家对本VS2010/MFC教程的关注。


    原文地址:http://www.jizhuomi.com/software/195.html  http://www.jizhuomi.com/software/197.html

    展开全文
  • 列表视图控件一些函数

    千次阅读 2013-10-24 22:54:36
    GetBkColor获取列表视图控件的背景色。   SetBkColor设置列表视图控件的背景色。   GetImageList获取用于绘制列表视图项的图象列表的句柄。   SetImageList指定一个图象列表到列表视图控件。   GetItemCount...
  • 列表视图控件(一)

    千次阅读 2016-09-19 17:14:21
     列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。  列表视图控件是对前面讲到的列表框控件List Box的改进...
  • 主要介绍了Qt qml中listview 列表视图控件(下拉刷新、上拉分页、滚动轴) 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 具有位图背景的列表视图控件 MFC自定义控件
  • 列表视图控件(List Control) 列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个...
  • 列表视图控件CListCtrl】控件应用第十八课,最基本,最常用的用法
  • 列表视图控件的创建 MFC同样为列表视图控件的操作提供了CListCtrl类。 如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型...
  • QQ的好友列表用起来既方便又美观,深受用户喜爱。可是在Visual C++的开发环境中没有类似的控件,本例通过Visual C++实现了这种类似QQ抽屉效果的列表视图控件
  • 列表视图控件CListCtrl】控件应用第二十课,Report样式的重绘,关于ICON样式,本章结束后我们模拟一下ICON样式
  • 列表视图控件的创建  MFC同样为列表视图控件的操作提供了CListCtrl类。  如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,...
  • VC2010使用自定义树列表视图控件示例代码,自己写的,有待完善。
  • 列表视图控件ListView

    千次阅读 2014-04-29 13:31:55
    ListView控件类似于ListBox控件,可用来...一、列表视图控件的部分属性及其说明 属性名 说明 Selected 用于获取或设置一个值,该值指示是否选定此选项 CheckBoxes 指示列表
  • 在VC++中,在一个对话框中点击按钮,就可以将一些信息(文字,数字)显示至另外一个对话框中的列表视图控件中,
  • 列表视图控件(List Control) 列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个...
  • 列表视图控件简介 1. 列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。 列表视图控件是对前面讲到的列表框...
  • LVITEM列表视图控件(List Control) 列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,034
精华内容 30,013
关键字:

列表视图控件