Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Хочу поменять родительский класс


Автор: Paradox 13.3.2003, 15:08
При создании приложения задал родительским классом для своего CMyView класс СView, а теперь понял что надо CEditView
простая замена
Код
CMyView : public CView

на
Код
CMyView : public CEditView

не помогает, т.к. вылезает ошибка и вся прога валится. Что я не так деллаю ?

Автор: Paradox 13.3.2003, 15:15
Система говорит мне в каком из файлов ошибка (файл является исходником поставляемым с VS)
смотрю в какой строке получается вот как:
Код
void CEditView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
ASSERT_VALID(this);
ASSERT_VALID(pDC);

               // В СТРОКЕ НИЖЕ ВОЗНИКАЕТ ОШИБКА !!!!!!!!!!!!!!!!!!!!!!!!!!
               ASSERT(pInfo != NULL);  // overriding OnPaint -- never get this.

if (pInfo->m_nCurPage > (UINT)m_aPageStart.GetSize() &&
 !PaginateTo(pDC, pInfo))
{
 // can't paginate to that page, thus cannot print it.
 pInfo->m_bContinuePrinting = FALSE;
}
ASSERT_VALID(this);
}


Автор: Paradox 13.3.2003, 18:40
Уфф ... Вроде сам сделал
Если кому интересно : создал новый проект с CEditView посмотрел отличия и переделал у себя smile.gif

Автор: DENNN 13.3.2003, 18:45
Надо было кроме самого родителя, заменить CEditView в макросах карты сообщений и т.п. (т.е. BEGIN_MESSAGE_MAP(...))

Автор: Paradox 13.3.2003, 19:48
DENNN я примерно это и сделал

Автор: DENNN 14.3.2003, 04:56
У меня таких проблем не возгикает. Поищи в файлах проекта строку CView - все ее вхождения надо заменить на CEditView ну и соответсвенно проверить #include...
У меня всегда такой способ в VC6 срабатывал. В VC7 не пробовал.

Автор: Paradox 14.3.2003, 12:47
Цитата
DENNN я примерно это и сделал

я имел ввиду, что у меня все получилось, а делал я примерно так как ты посоветовал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)