Если вы хотите только прочитать ваш файл с параметром Count, создайте свои кнопки, поработайте с ними, а затем удалите их все, тогда, на мой взгляд, CArray<CButton*>
подойдет. Чтобы убедиться, что кнопки удалены, вы можете обернуть CArray в помощник как:
class CMyButtonArrayWrapper
{
public:
CMyButtonArrayWrapper();
virtual ~CMyButtonArrayWrapper();
void ClearArray();
void Add(CButton* theButton);
private:
CArray<CButton*> m_Array;
}
CMyButtonArrayWrapper::CMyButtonArrayWrapper()
{
}
CMyButtonArrayWrapper::~CMyButtonArrayWrapper()
{
ClearArray();
}
void CMyButtonArrayWrapper::ClearArray()
{
for (int i=0; i<m_Array.GetSize(); i++)
{
CButton* aButton=m_Array.GetAt(i);
if (aButton)
delete aButton;
}
m_Array.RemoveAll();
}
void CMyButtonArrayWrapper::Add(CButton* theButton)
{
m_Array.Add(theButton);
}
Затем добавьте объект этого класса в качестве члена к пользовательскому элементу управления (m_MyButtonArrayWrapper
) и добавьте свои кнопки с помощью:
CButton* aButton=new CButton;
aButton->Create( ... );
m_MyButtonArrayWrapper.Add(aButton);
Если вам нужно добавлять и удалять кнопки случайным образом, CList
может лучше подойти по соображениям производительности. (Но вы, вероятно, не заметите разницы в производительности, используя InsertAt / RemoveAt из CArray, за исключением того, что ваш пользовательский интерфейс имеет несколько тысяч кнопок. Я думаю, это будет скорее художественное произведение, чем пользовательский интерфейс:))