Здравствуйте, Magic, Вы писали:
M>Как мне в приложении такого типа сделать другую рабочую область?
Что такое "рабочая область" в вашей терминологии?
И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?
Здравствуйте, Serguei666, Вы писали:
S>Здравствуйте, Magic, Вы писали:
M>Как мне в приложении такого типа сделать другую рабочую область? S>Что такое "рабочая область" в вашей терминологии? S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?
В общем, я имею ввиду следующее:
По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?
Здравствуйте, Magic, Вы писали:
M>Здравствуйте, Serguei666, Вы писали:
S>Здравствуйте, Magic, Вы писали:
M>Как мне в приложении такого типа сделать другую рабочую область? S>Что такое "рабочая область" в вашей терминологии? S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?
M>В общем, я имею ввиду следующее: M> По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?
В визарде на шаге6 выбирается необходимый Base class
[]
M>В общем, я имею ввиду следующее: M> По умолчанию создается класс CView.
Если "По умолчанию создается" ты имеешь в виду то, что генерит MFC-App wizard, то он создаст тебе то, что попросишиь. Там на последнем шаге езть
возможность выбрать Base Class для твоего вью.
M> Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу.
Обрабатывай соответ. события типа WM_CHAR, WM_MOUSEMOVE ect. и действуй соответ., т.е. того, редактируй.
M> Как класс CView превратить (заменить), например, в класс CEditView?
Можно тупо search and replace все CView на CEditView в файлах определения и реализации твоего view. Ну и там сериализацию вроде нужно переделать, точно уж не помню. Короче создай новый проект визардом с нужным вью, и методом replace, copy/paste etc.
Здравствуйте, Magic, Вы писали:
M>Здравствуйте, Serguei666, Вы писали:
S>Здравствуйте, Magic, Вы писали:
M>Как мне в приложении такого типа сделать другую рабочую область? S>Что такое "рабочая область" в вашей терминологии? S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?
M>В общем, я имею ввиду следующее: M> По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?
CView никак не может создаватся. Этот класс абстрактный и всякие попытки написать код по его созданию наткнутся на стену непонимания со стороны компилятора.
Здравствуйте, Magic, Вы писали:
M>Как мне в приложении такого типа сделать другую рабочую область?
Можно:
//view1.cppvoid CView1::OnInitialUpdate(){
CView::OnInitialUpdate();
//attach the document to the new view
CCreateContext context;
context.m_pCurrentDoc = GetDocument(); // <- or insert here other document
//create control template CPackageFrame* m_pChildFrm
m_pView2->Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(,,,), this, IDCONTROL, &context);
//...
}
//где-то создайте и удалите m_pView2 !
и еще,
//view1.h class CView1 : public CView{
//...
CView2* m_pView;
//...
};
последнее, что нужно помнить, конструктор CView2 должен быть открытым, по умолчанию он защищен
//view2.hclass CView2 : public CScrollView{
public:
CView2();
DECLARE_DYNCREATE(CView2)
//...
};