• 13.MFC控件(二)


    一、列表控件

      1. 相关类

        CListCtrl - 父类是CWnd类,控件类,常用于对话框程序中。

        CListView - 父类是CCtrlView类,视图类,常用于文档视图应用程序中。

              通过调用GetListCtrl()函数得到视图客户区的控件,通过CListCtrl类完成相关功能。

        列表控件有4中不同的显示风格:图标、小图标、列表、报表(详细信息)。

      2. CListCtrl类的使用

        2.1 设置控件的图标列表(图标列表、小图标列表)

          (1)添加与图标列表关联的位图         

          (2)创建图标列表

             CImageList::Create

          (3)设置控件的图标列表

             CListCtrl::SetImageList

        2.2 设置控件的列

          CListCtrl::InsertColumn

        2.3 插入数据项(第一列)

          CListCtrl::InsertItem

        2.4 设置列的文本

          CListCtrl::SetItemText

          例子:使用CListCtrl控件显示指定目录下的文件和目录(结合CFileFind类)。

        2.5 获取设置数据项的附加数据

          CListCtrl::SetItemData / CListCtrl::GetItemData

        2.6 设置控件的背景图片

          初始化OLE库 - AfxOleInit( );

          设置控件的背景图片 - CListCtrl::SetBkImage( LPTSTR  pszUrl,

                                                                                   BOOL     fTile = TRUE,

                                                                                   int         xOffsetPercent = 0,

                                                                                   int         yOffsetPercent = 0);

          设置字体的背景色为透明 - CListCtrl::SetTextBkColor( CLR_NONE );

      3. CStringList类

        3.1 清空链表

          void  CStringList::RemoveAll( );

        3.2 添加元素

          POSITION  CStringList::AddTail( CObject* NewElement );

        3.3 获取元素

          CObject*  CStringList::GetAt( POSITON  position );

        3.4 通过元素的索引得到元素的位置

          POSITION  CStringList::FindIndex( int  nIndex );

    二、树控件

      1. 相关类

        CTreeCtrl类 - 父类是CWnd类,控件类。主要在对话框中使用。

        CTreeView类 - 父类是CCtrlView,视图类。主要在文档视图程序中使用。

                             通过调用GetTreeCtrl( )函数得到视图相关的控件。

        树控件的节点是通过节点句柄标识的

      2. CTreeCtrl类的使用

        2.1 设置控件的图标列表

          CTreeCtrl::SetImageList

        2.2 插入树节点

          HTREEITEM  InsertItem( LPCTSTR     lpszItem,                           //节点文本

                                                        int              nImage,                            //图标的索引

                                                        int              nSelectedImage,                 //选中节点时的图标

                                                        HTREEITEM  hParent = TVI_ROOT,         //结点的父节点,使用默认值表示该节点为根节点

                                                        HTREEITEM  hInsertAfter = TVI_LAST ); //在哪个兄弟节点后插入当前节点

        2.3 设置节点高度

          CTreeCtrl::SetItemHeight

        2.4 设置节点展开状态

          CTreeCtrl::Expand

    三、Tab控件

      1. 相关类

        CTabCtrl - 实现属性页的功能

      2. CTablCtrl类的使用

        2.1 插入标签

          CTabCtrl::InsertItem

        2.2 获取当前选项

          CTabCtrl::GetCurSel

    四、属性页对话框

      1. 分类

        标签式 - 常用来完成参数、选项等设置

        向导式 - 常用于引导用户一步步的选择和设置,完成某种功能

      2. 相关类

        CPropertyPage类 - 页面对话框类(属性页类)

        CPropertySheet类 - 容器窗口类(属性表单类)

        整个属性页面的组成:一个表单对象 + 多个属性页对象

      3. 标签式的使用

        3.1 插入对话框资源,设置语言的字体。双击资源生成页面类,注意父类选择CPropertyPage类

        3.2 继承自CPropertySheet类,添加表单类

        3.3 在表单中添加页面对象

          CPropertySheet::AddPage( )

        3.4 将应用按钮设置为可用

          CPropertyPage::SetModified

        3.5 通过添加虚函数生成应用按钮的消息处理函数

          CPropertyPage::OnApply( )

        3.6 颜色对话框 - CColorDialog类

         (1)显示颜色对话框

            CColorDialog  dlg;

            dlg.DoModal( );

         (2)获取选择的颜色

            dlg.GetColor( );

      4. 向导式属性页   

        4.1 插入对话框资源,设置语言的字体。双击资源生成页面类,注意父类选择CPropertyPage类

        4.2 继承自CPropertySheet类,添加表单类

        4.3 在表单中添加页面对象

          CPropertySheet::AddPage( )

        4.4 设置显示方式为向导式

          CProertySheet::SetWizardMode( )

        4.5 创建和显示

          CPropertySheet::DoModal( )

        4.6 设置页面的向导按钮

         (1)添加页面类的虚函数

            OnSetActive( )

         (2)在该函数中设置向导按钮

            GetParent( )

            CProperty::SetWizardButtons

        4.7 消息处理(虚函数)

          CPropertyPage::OnWizardNext( )

          CPropertyPage::OnWizardBack( )

          CPropertyPage::OnWizardFinish( )

         

      

      

  • 相关阅读:
    OpenCV图像处理之 Mat 介绍
    linux 更改网卡名称 eth0
    【git】git常用命令
    【JS】函数提升变量提升以及函数声明和函数表达式的区别
    【VUE】vue中遍历数组和对象
    加密盐的意义和用途
    sql server2005版本中,len函数计算了字符串末尾的空格
    ES之一:API使用及常用概念
    flink (一)
    ClassLoader详解 (JDK9以前)
  • 原文地址:https://www.cnblogs.com/csqtech/p/5734925.html
Copyright © 2020-2023  润新知