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


Автор: RinOSpro 23.10.2007, 17:21
Вот делаю по примеру игру http://www.progs.biz/vc/samples/lines/lessons/008.aspx отстановился на 8 главе приведу. Там пример вероятно для visual c++ 6 а у меня visual studio 2005. а ошибка в том что компилятор не понимает 

Код

void CLinesDoc::OnDraw(CDC* pDC)
{
    CLinesDoc* pDoc = GetDocument();  вот он не знает что такое
    ASSERT_VALID(pDoc);
    CBitmap bitmap;


Автор: FREEDEV 23.10.2007, 17:54
что хоть пишет, ошибку в студию...
Возможно неправиьно указан тип проект при создании : Dialog Based вместо Single Document

Автор: RinOSpro 23.10.2007, 18:07
d:\text\информационные технологии\програмирование\delphi\проекты\colorlines\colorlines\mainfrm.cpp(195) : error C2440: 'initializing' : cannot convert from 'bool' to 'CLinesDoc *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://d:\Text\Информационные технологии\Програмирование\Delphi\Проекты\ColorLines\ColorLines\Debug\BuildLog.htm"
ColorLines - 1 error(s), 0 warning(s)

Автор: zkv 23.10.2007, 18:09
Цитата(RinOSpro @  23.10.2007,  17:21 Найти цитируемый пост)
void CLinesDoc::OnDraw(CDC* pDC)
{
    CLinesDoc* pDoc = GetDocument();  вот он не знает что такое
    ASSERT_VALID(pDoc);
    CBitmap bitmap;

ужас какой... 

видимо ты хотел переопределить CView::OnDraw(), только он должен быть размещен в классе представления (View)
А в классе представления метод GetDocument() автоматически размещается визардом, возвращает метод указатель на соответствующий документ 
Те по идее это определяемая клиентом функция.

так что это не при чем:
Цитата(RinOSpro @  23.10.2007,  17:21 Найти цитируемый пост)
Там пример вероятно для visual c++ 6 а у меня visual studio 2005


Почему тема не в MFC-разделе? Удивляетесь потом, что не отвечают...

Добавлено @ 18:10
По твоей ссылке код другой  smile 

Автор: RinOSpro 23.10.2007, 18:14
Цитата(zkv @  23.10.2007,  18:09 Найти цитируемый пост)
видимо ты хотел обработчик WM_DRAW

Я ничего не хотел т.к. ничего не понимаю. Я делаю по примеру. Так чтобы немного в с++ разобраться. Так как правильно сделать?

Автор: zkv 23.10.2007, 18:22
Цитата(RinOSpro @  23.10.2007,  18:14 Найти цитируемый пост)
Я делаю по примеру.

тогда четко следуй инструкциям
Цитата(RinOSpro @  23.10.2007,  18:14 Найти цитируемый пост)
Так чтобы немного в с++ разобраться.

если в с++ то лучше начни с консольных приложений, а то на тебя все сразу навалится, не будешь понимать где с++ заканчивается и начинается MFC. 
Цитата(RinOSpro @  23.10.2007,  18:14 Найти цитируемый пост)
Так как правильно сделать? 

эээ... предлагаешь статью написать, о том как создавать приложения в MFC? Так их и так немало...
Цитата(RinOSpro @  23.10.2007,  18:14 Найти цитируемый пост)
обработчик WM_DRAW

я тут чушь сморозил, это не обработчик, это виртуальный метод. 
Цитата(CView)

virtual void OnDraw(
   CDC* pDC 
) = 0;


с WM_PAINT попутал...

Добавлено через 1 минуту и 17 секунд
по твоей ссылке:
Цитата

Для этого добавьте в метод OnDraw класса CLinesView следующийй код

Автор: Dronchik 23.10.2007, 18:26
RinOSpro, Во первых начни изучать MFC. Чтоб понять чтото. Там тебе будет всё написано и расписано. А потом эти статьи с lines кури.

Автор: RinOSpro 30.10.2007, 17:42
Вот исходник. Помогите плиз.

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