Создание немодального списка свойств с использованием массива страниц свойств MFC C++
Я создаю лист свойств, полученный из CMFCPropertySheet, он создается из мэйнфрейма при вызове начальной страницы редактора. Мой вопрос: когда вызывается дополнительная страница, я бы хотел, чтобы для нее была создана новая вкладка. Каждая вызываемая страница будет получена одним и тем же классом, но максимальное количество страниц неизвестно, поэтому ее необходимо определить как
CEditorPage *m_editorpage[];
но компилятор жалуется, что он использует массив нулевого размера. В деструкторе я удаляю страницы, созданные в цикле for, от 0 до количества страниц в листе. в посте уничтожить удаляю этот указатель. Программа вылетает и останавливается на
delete this;
Если я не использую массив, он не падает. Но поскольку я использую одну и ту же страницу класса на каждой странице свойств, и я не знаю, сколько их будет, мне нужно использовать массив нулевого размера. В любом случае я получаю утечку памяти.
Как я могу создать массив нулевого размера на основе CMFCPropertyPage в листе свойств, чтобы я мог добавить дополнительные страницы во время выполнения и выполнить надлежащую очистку, когда лист свойств закрыт. Я получаю сбой или утечку памяти в каждом методе, который я пробовал.
2 ответа
Попробуйте использовать динамический массив
CEditorPage *m_editorpage = new CEditorPage[_num_of_editorpage];
....
delete[] m_editorpage ;
Как насчет использования класса std::vector или аналогичного?