Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование на контроле 
:(
    Опции темы
GavriKos
Дата 1.7.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

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



Есть такой вопрос. Нужно рисовать не на всем диалоге, а на контроле. Написал функцию, которая рисует то что надо, на кнопке (в качестве примера), беря его контекст устройства. Все хорошо, но вот только если вызвать эту фунцию из OnPaint то кнопка рисуется позже и оказывается над рисунком. Если повесить вызов ф-ии на нажатие кнопки, то все ок до очередного вызова перерисовки всего окна. Как можно решить данную проблемму?
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
Earnest
Дата 1.7.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Сделать так, чтобы контрол рисовал себя сам. Т.е. субклассировать кнопку, переопределив ей функцию OnPaint. Или просто сделать ее OwnerDraw? и рисовать в функции DrawItem.


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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

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



Ну вариант с субклассом (как я понял имеется ввиду наследование?) не сильно катит, ибо желательно рисовать только зная контекст устройства. По поводу DrawItem - чья это функция? А то включил OwnerDraw, но в обработчиках кнопки такого не нашел.
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
Andrey44
Дата 2.7.2009, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

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





--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
GavriKos
Дата 2.7.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

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



Спасибо, уже понятнее. Но возникла новая проблемма. В общем последовательность действий была такая

-нашел обработчик DrawItem, добавил его - все ок, программа собирается, запускаетя
-включил кнопке OwnerDraw - все, прогарамма собирается, но когда запускается то выдает ошибку Unhandled exception ((

Никакой код я при этом сам не вписывал. Все было сгенерировано визардами. Может надо какой то стиль поменять у кнопки еще? Увы, в мсдн-е нашел только упоминание, что в струтуре, передаваемой в OwnerDraw hDC должно быть в итоге такое же как и в начале, но я ведь ничего не меняю.
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
Earnest
Дата 2.7.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Есть такая штука - отладчик называется. Попробуй, чего гадать-то.



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


 




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


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

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