Use of WX_DEFINE_ARRAY

/***************************************************************
 * Name:      AAMain.cpp
 * Purpose:   wxwidgets中WX_DEFINE_ARRAY的使用
 * Author:     ()
 * Created:   2018-03-14
 * Copyright:  ()
 * License:
 **************************************************************/

#include <wx/dcclient.h>
struct Mine{
    int flag;   int statu;  bool tips;
};
WX_DEFINE_ARRAY(Mine *, ArrayOfMines);

void AAFrame::OnAbout(wxCommandEvent& event)
{
    Mine m1,m2;
    m1.flag=10;
    ArrayOfMines m_arrMines;
    /**
     定义完对象数组,我们可以先通过Add方法追加,
然后通过Item方法对容器里的元素进行读取和更新,
还可以通过Remove方法进行删除等等,其操作方法是相当灵活的。
     */                             
        
    m_arrMines.Add(&m1);
    m2.flag=20;
    m_arrMines.Add(&m2);
    m_arrMines.Add(new Mine());
    m_arrMines.Item(2)->flag=30;
    wxString str;
//    m_arrMines.Item(1)->flag=10;
    str=wxString::Format("%i",m_arrMines.Item(0)->flag);
    wxClientDC dc(this);
    dc.DrawText(str,10,10);
    str=wxString::Format("%i",m_arrMines.Item(1)->flag);
    dc.DrawText(str,10,50);
    str=wxString::Format("%i",m_arrMines.Item(2)->flag);
    dc.DrawText(str,10,100);
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326116794&siteId=291194637