Поиск:

Ответ в темуСоздание новой темы Создание опроса
> окошко CFrameWnd 
V
    Опции темы
tilser
Дата 22.6.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Имеется обычный диалог из визарда. Далее допустим я создал новый класс - наследник от CFrameWnd, допустим MyNewWnd.
Далее в своей проге(допустим по нажатии какой-нибудь кнопки) создаю свое окошко:

Код

MyNewWnd *NewWnd = new MyNewWnd();
NewWnd->ShowWindow(SW_SHOW);
NewWnd->UpdateWindow();

Теперь парочка вопросов. Как описать для моего нового окошка скажем событие OnPaint.
В файле MyNewWnd.cpp есть карта сообщений
Код

BEGIN_MESSAGE_MAP(MyNewWnd, CFrameWnd)

END_MESSAGE_MAP()

там нужно написать 
Код

afx_msg void OnPaint();

а где описать именно то что будет в этом событии?
PM MAIL   Вверх
Earnest
Дата 22.6.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(tilser @  22.6.2007,  19:13 Найти цитируемый пост)
там нужно написать 

Это нужно написать в определении класса, а в карту сообщений нужно добавить WM_PAINT().
Соответственно, в реализации обработчика OnPaint нужно писать "что будет в этом событии"



--------------------
...
PM   Вверх
zkv
Дата 22.6.2007, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(tilser @  22.6.2007,  18:13 Найти цитируемый пост)
MyNewWnd *NewWnd = new MyNewWnd();
NewWnd->ShowWindow(SW_SHOW);
NewWnd->UpdateWindow();

это, кстати не сработает, еще надо создать окно: 
Код

MyNewWnd *NewWnd = new MyNewWnd();
//надо создать окно! 
NewWnd->Create(/*что-то там*/);
NewWnd->ShowWindow(SW_SHOW);
NewWnd->UpdateWindow();

PM MAIL   Вверх
tilser
Дата 22.6.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



zkv, у меня Create в конструкторе описано smile 
PM MAIL   Вверх
tilser
Дата 22.6.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



делаю так 
Код

BEGIN_MESSAGE_MAP(MyNewWnd, CFrameWnd)
WM_PAINT()
END_MESSAGE_MAP()

выдает ошибки:
term does not evaluate to a function taking 0 arguments
cannot allocate an array of constant size 0
 'TheBaseClass' : is not a class or namespace name
 'GetThisMessageMap' : undeclared identifier
 '_messageEntries' : undeclared identifier
 smile 
PM MAIL   Вверх
zkv
Дата 22.6.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Код

BEGIN_MESSAGE_MAP(MyNewWnd, CFrameWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()


Цитата(tilser @  22.6.2007,  21:12 Найти цитируемый пост)
у меня Create в конструкторе описано

а вдруг впоследствии объект в стеке захочешь создать?
PM MAIL   Вверх
tilser
Дата 23.6.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Цитата(zkv @  22.6.2007,  23:09 Найти цитируемый пост)
а вдруг впоследствии объект в стеке захочешь создать? 

Не захочу smile 
Даже если захочу, иисправлять недолго.

Цитата(zkv @  22.6.2007,  23:09 Найти цитируемый пост)
ON_WM_PAINT()


zkv, спасибо
ЗЫ Моя невнимательность меня когда-нибудь погубит smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.