Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CFrameWnd и CView


Автор: Baran 31.1.2005, 14:01
Уважаемый Алл! smile
прошу прощения за ламерский вопрос, может кто поможет?
проблема такая :
Есть форма CFrameWnd, на ней рисуется большой график.
надо сделать CView для этой формы, чтоб график был на CView.
если не трудно - ма-а-а-ленький кусочек кода как это сделать.
smile

Автор: Coocky 31.1.2005, 14:04
Не понял....Дык создай приложение SDI,на последнем шаге визарда выбири CView(оно по умолчанию стоит) smile
Ничего не пойму....

Автор: Baran 31.1.2005, 15:25
Дело в том что это сделать не могу!
Прога уже написана, а мне надо доделывать, то что
некоторые слобали на скорую руку и умыли ноги ( :-) ).
Более конкретно :
Программа, в ней есть документ и вид и т.д. и т.п.
есть пункт меню нажимаешъ его и :
Код


void CZettWeDeView::OnZeitenBn()

{
...
( new CGraphWnd() )->Create( this );
}

дело в том, что
class CGraphWnd : public CFrameWnd

а прикол в том, что
Код

void CWZDGraphWnd::OnPaint()
{
CPaintDC dc(this);
...
}

здесь строиться график - большущий.
не входит на 1 лист, по этому надо разбить его на
много много листов.

как разбить я знаю, уже нашел. Но дело в том , что
CFrameWnd не содержит события
OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)

А без него у меня ничего не получается.
OnPrepareDC есть у CView вот я и пытаюсь приделать
CView к CFrameWnd.

Автор: alien_by 31.1.2005, 17:21
Вообщем, если есть Doc/View приложение я так понимаю, то всё, что нужно тебе сделать, это обработать сообщение OnDraw вида и в него вставить всё, что находится в OnPaint сейчас.

Ежели вида, нет, то действительно, не мучайся, создай SDI приложение мастером, подключи к нему всё что нужно для отрисовки графика, ну а затем, сделай вышеописанный финт!!!

Автор: Coocky 1.2.2005, 09:00
Baran
Цитата
Программа, в ней есть документ и вид и т.д. и т.п.


Какой вид?СView?Если нет,то легче переделать заново.Ну можно добавить класс CView через Визард,а ненужный удалить smile Но легче уже сначала.Чуть что где оставишь-компилятор ругаться начнет.Трудно иногда найти мелкую строчку smile Так что лучше переделай и закопипасть smile

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