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( )

     

 

  

  

posted @ 2016-08-03 23:05  甩锅侠  阅读(280)  评论(0编辑  收藏  举报