zoukankan      html  css  js  c++  java
  • MFC集合类的使用

    CStringArray用法:

     

    列表框:m_list

    单选按钮:m_radio  int(指其中一个属性设置为:组)

    文本框:m_pos  int 、m_str  CString

    按钮:OnCheck()

    1、创建基于对话框的工程StringArray.

    2、在CStringArrayDlg构造函数中添加:

    public:

    CStringArray m_array;

    3、按钮单击事件:OnCheck代码

    void CStringArray1Dlg::OnCheck()

    {

        UpdateData(true);

        switch(m_radio)

        {

           int i;

           case 0:

               if(m_pos < 0 || m_pos > m_array.GetSize())

               {

                  AfxMessageBox("数组位置不正确!");

                  return;

               }

               if(m_str.IsEmpty())

               {

                  AfxMessageBox("输入信息不能为空!");

                  return;

               }

               m_array.InsertAt(m_pos,m_str);

               m_list.ResetContent();//清空列表框

               for(i = 0; i<m_array.GetSize(); i++)

               {

                  m_list.AddString(m_array.GetAt(i));

               }

               m_str = "";

               m_pos = m_array.GetSize();

               UpdateData(false);

               break;

           case 1:

               if(m_pos < 0 || m_pos >= m_array.GetSize())

               {

                  AfxMessageBox("数组位置不正确!");

                  return;

               }

               m_array.RemoveAt(m_pos);

               m_list.ResetContent();

               for( i = 0; i<m_array.GetSize(); i++)

               {

                  m_list.AddString(m_array.GetAt(i));

               }

               m_str = "";

               m_pos = m_array.GetSize();

               UpdateData(false);

               break;

        }

    }

    CPtrList的使用:

     

    列表框:m_list

    单选按钮:m_radio

    文本框:m_name   CString , m_price  double , m_sum   double

    按钮:OnCheck()

    1、创建基于对话框的工程PtrList

    2、在CCPtrListDlg文件顶部定义结构体:CGoods

    struct CGoods

    {

    CString m_name;

    double m_price;

    };

    3、构造函数中添加:

    CPtrList m_goodslist;

    4、通过类向导添加成员函数:

    void  Reflesh();

    5、OnCheck()代码:

    void CCPtrListDlg::OnCheck()

    {

        UpdateData(true);

        CGoods* m_pGoods = new CGoods();

        switch(m_radio)

        {

        case 0:

           if(m_name.IsEmpty() || m_price <= 0)

           {

               AfxMessageBox("输入商品信息不正确!");

               return;

           }

           m_pGoods->m_name = m_name;

           m_pGoods->m_price = m_price;

           m_goodslist.AddTail(m_pGoods);

           m_name = "";

           m_price = 0.0;

           Reflesh();//函数调用

           break;

        case 1:

           if(m_goodslist.GetCount())//链表不为空

           {

               m_goodslist.RemoveHead();

           }

           m_name = "";

           m_price = 0.0;

           Reflesh();

           break;

        case 2:

           if(m_goodslist.GetCount())

           {

               m_goodslist.RemoveTail();

           }

           m_name = "";

           m_price = 0.0;

           Reflesh();

           break;

        }  

    }

    6、Reflesh()代码:

    void CCPtrListDlg::Reflesh()

    {

        int i;

        m_sum = 0;

        CString str,str1;

        m_list.ResetContent();//清空列表框

        if(!m_goodslist.IsEmpty())

        {

           POSITION pos = m_goodslist.GetHeadPosition();

           for( i = 0; i<m_goodslist.GetCount(); i++)

           {

               CGoods* m_pGoods = (CGoods*)m_goodslist.GetNext(pos);

               str1.Format("%.2f",m_pGoods->m_price);

               str = "品名:"+m_pGoods->m_name+",单价:"+str1;

               m_list.AddString(str);

               m_sum += m_pGoods->m_price;

           }

        }

        UpdateData(false);//把更新放在这里,适合。

    }

    注:

    与数组不同,链表的位置用POSITION来标识。

    向链表中添加元素:

    CStringList m_list;

    POSITION pos = m_list.AddHead(“Head”);

    pos = m_list.InsertAfter(pos,”note1”);

  • 相关阅读:
    html抽取文本信息-java版(适合lucene建立索引)
    【LeetCode with Python】 Sort List
    POJ 2533 Longest Ordered Subsequence(dp LIS)
    Activity 之间 传递 List 封装的对象或者对象
    mongo数据库--非关系型数据库
    cocos2d-x的声音控制
    CSDN博客积分规则
    怎样使用递归实现归并排序
    android中9-patch图片的使用
    Cocos2d-x-3.0环境搭建
  • 原文地址:https://www.cnblogs.com/lxshanye/p/3088582.html
Copyright © 2011-2022 走看看