Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 200
от 20.09.2005, 19:01

Администратор:Калашников О.А.
В рассылке:Подписчиков: 200, Экспертов: 31
В номере:Вопросов: 1, Ответов: 2


Вопрос № 26379: Здрысть, уважаемые эксперты! C++, MFC, XP. Пытаюсь нарисовать что-нить посредством CPaintDC. Если цепляю код в обработчик кнопки, то совсем не работает. В OnPaint следующая ситуёвина: 1) Объявляю экземпляр класса CPaintDC CPaintDC dc...

Вопрос № 26.379
Здрысть, уважаемые эксперты!
C++, MFC, XP. Пытаюсь нарисовать что-нить посредством CPaintDC. Если цепляю код в обработчик кнопки, то совсем не работает. В OnPaint следующая ситуёвина:

1) Объявляю экземпляр класса CPaintDC
CPaintDC dc(this);
dc.SetPixel(20,30,RGB(6,6,6));
Всё рисуется ок

2) Объявляю свой класс с унаследованием от CPaintDC
...
class DrawStateClass : public CPaintDC
...
DrawStateClass DC(this);
DC.SetPixel(10, 20, RGB(6,6,6));

не работает!

Вопросы:
1) Из-за чего не рисуется "мой класс"?
2) Как сделать так, чтобы рисовалось в любом обработчике?
Отправлен: 15.09.2005, 10:55
Вопрос задал: Дрищев Василий (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Azat
Здравствуйте, Дрищев Василий!

CPaintDC необходимо использовать только при реакции на сообщение WM_PAINT, обычно в функции OnPaint
Используйте CClientDC dc(this); - тогда всё будет рисоваться.
Ответ отправил: Azat (статус: 4-ый класс)
Отправлен: 15.09.2005, 19:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое за точный и правильный ответ!! Всё пофиксил!

Отвечает: Raptor1
Здравствуйте, Дрищев Василий!
Возможно ты не перегрузил конструктор из CWnd*, это можно сделать так:
DrawStateClass (CWnd* pWnd ) : CPaintDC(pWnd
{

}
а у тебя и рисуется в любом обработчике, только потом закрашивается в OnDwar или OnPaint, поэтому отрисовку надо выполнять там
Ответ отправил: Raptor1 (статус: 7-ой класс)
Отправлен: 17.09.2005, 10:28


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное