![]() |
|
|
![]()
|
|
| Kirow |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.11.2007 Репутация: нет Всего: нет |
Ну думаю проблема не сложная, просто я не шарю...
в общем есть пустое обычно диалоговое окно, на котором хотелось бы отрисовывать что либо...ну например текст.
если пишу этот кусок в обработчике OnPaint - работает, если к примеру в обработчике нажатия кнопки - нет. Подскажите как сделать чтобы нормально рисовало вне метода OnPaint. Когда-то делал что-то похожее, но не в диалоговом окне, а в классе наследуемом от CFrameWnd - там работало... Это сообщение отредактировал(а) Kirow - 1.11.2011, 11:53 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Правильно делать рисование именно в методе OnPaint, а не где-либо еще.
Ибо иначе нарисованное долго не проживет (до первого Invalidate), что видимо у тебя и происходит. Только использовать нужно не CClientDC, а CPaintDC. Еще вариант, если не хочешь хранить, чтО нужно рисовать: завести битмэп и контекст в памяти, рисовать ну нем (вот тут хоть в обработчике кнопки, хоть когда хочешь), а в OnPaint просто копировать этот битмэп на экран. -------------------- ... |
|||
|
||||
| Kirow |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.11.2007 Репутация: нет Всего: нет |
та что-то у меня и через виртуальное не получается...
глобально.
внутри функции
проблема тут со строкой bmp.GetBitmap(&bm); копипаста с книги, а не работает. |
||||
|
|||||
| Kirow |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.11.2007 Репутация: нет Всего: нет |
стыд и позор мне...как обычно искал проблему не там где она была...не рисовало у меня потому что метод вызывал внутри InitDialog, судя по всему после него сразу инвалидейт шел...
|
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
создай в диалоги child control класс "STATIC" со стилем SS_OWNERDRAW, тогда при инициализации этого контрола тебе прилетит сообщение WM_OWNERDRAW с указателем на HDC этого контрола, вот на нем и нарисуешь.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |