![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Вот такой вот простой кусочек исходника. Все как в книгах и в MSDN, а вот когда цвет меняешь примерно в сотый раз, то начинаются глюки - все просто рисуется черным цветом. Что не перепробовал - ничего не помогает, только после DestroyWindow() все опять работает и опять раз сто, но не больше. Ошибка просто должна сидеть здесь потому, что если например выкинуть вот это
то есть не выбирать новую кисть, то все как бы работает как надо. Подскажите пожалуйста если кто знает, что надо refresh`евать, update`ывать или еще что-нибудь, чтобы избавиться от этого глюка. Спасибо! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
А pDC откуда появляется?Приведи всю процедуру. И расскажи в какие моменты ты рисуешь этот четырехугольник.
|
|||
|
||||
| cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Я сделал свои собственные кнопки. В событии ::DrawItem происходит в начале стандартная обработка структуры lpDrawItemStruct (см. снизу) и вот этот pDC передает в отдельную функцию рисования кнопок.
Для простоты я уже ее сократил до минимального и вяглядит она вот так:
Четвертый параметр пока не используется. сrColour зависит от того как мы обработаем всякие параметры в DrawItem. На форме, на которой сидит кнопка происходит след.:
Если m_bActive == true, то значит мы были на кнопке Menu - мы перестанавливаем true на false и перерисовывем окно (кнопку). Если мы делаем так Menu.InvalidateRect(CRect(0,0,100,28), false); то результат тот же, что с true, что с false. Как бы все перепробовал, а если кнопка потеряет и поймает фокус несколько десятков раз, то все начинает глючить и рисоваться исключительно черным цветом. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Вообщем ошибка была тут:
Вот правильный вариант:
Все дело было в одном крючке "&". Вот так вот ошибся, а сегодня с утра доперло. Всем спасибо! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Незачто
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |