SDI-приложение
От: Magic Россия  
Дата: 10.05.03 09:52
Оценка:
Как мне в приложении такого типа сделать другую рабочую область?
Re: SDI-приложение
От: Serguei666 Беларусь  
Дата: 10.05.03 12:31
Оценка:
Здравствуйте, Magic, Вы писали:

M>Как мне в приложении такого типа сделать другую рабочую область?

Что такое "рабочая область" в вашей терминологии?
И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re[2]: SDI-приложение
От: Magic Россия  
Дата: 13.05.03 11:43
Оценка:
Здравствуйте, Serguei666, Вы писали:

S>Здравствуйте, Magic, Вы писали:


M>Как мне в приложении такого типа сделать другую рабочую область?

S>Что такое "рабочая область" в вашей терминологии?
S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?

В общем, я имею ввиду следующее:
По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?
Re[3]: SDI-приложение
От: zoya Россия  
Дата: 13.05.03 12:08
Оценка:
Здравствуйте, Magic, Вы писали:

M>Здравствуйте, Serguei666, Вы писали:


S>Здравствуйте, Magic, Вы писали:


M>Как мне в приложении такого типа сделать другую рабочую область?

S>Что такое "рабочая область" в вашей терминологии?
S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?

M>В общем, я имею ввиду следующее:

M> По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?

В визарде на шаге6 выбирается необходимый Base class
Re[3]: SDI-приложение
От: Patalog Россия  
Дата: 13.05.03 12:09
Оценка:
Здравствуйте, Magic, Вы писали:

[]

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.
Почетный кавалер ордена Совка.
Re[3]: SDI-приложение
От: Serguei666 Беларусь  
Дата: 13.05.03 15:13
Оценка:
Здравствуйте, Magic, Вы писали:

M>Здравствуйте, Serguei666, Вы писали:


S>Здравствуйте, Magic, Вы писали:


M>Как мне в приложении такого типа сделать другую рабочую область?

S>Что такое "рабочая область" в вашей терминологии?
S>И что означает слово "другую"? Чем она будет отличатся от обычной? Цветом? Размером? Поведением?

M>В общем, я имею ввиду следующее:

M> По умолчанию создается класс CView. Он определяет отображение "документа" на экране. Как мне сделать, чтобы я мог редактировать текст или таблицу. Как класс CView превратить (заменить), например, в класс CEditView?

CView никак не может создаватся. Этот класс абстрактный и всякие попытки написать код по его созданию наткнутся на стену непонимания со стороны компилятора.
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re: SDI-приложение
От: Сергей Глазунов Украина  
Дата: 15.05.03 15:25
Оценка:
Здравствуйте, Magic, Вы писали:

M>Как мне в приложении такого типа сделать другую рабочую область?


Можно:

//view1.cpp
void 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.h
class CView2 : public CScrollView{
public:
    CView2();
    DECLARE_DYNCREATE(CView2)
    //...
};
... << RSDN@Home 1.0 beta 7a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.