![]() |
|
![]() ![]() ![]() |
|
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
здравствуйте.
есть вопрос. занимаюсь к сожалению отладкой прорисовки програмки на MFC. не нашёл доки, но вопрос заинтересовал. у меня есть переменная вида CComboBox по имени m_cbx. если я на нее тыкаю, открывается поп-ап, и он накрывает другой элемент, по имени LCD, чуточку. короче когда пользователь клацает на комбу, после закрытия комбы, и получения нового значения, происходит перерисовка некоторых регионов в окне. в частности, весь регион, кусок которого накрывает комбо, перерисовывается, и создаёт маленький фликер. до фликера, комбо прикрывает (указано стрелкой) кусок LCD: ![]() после выбора элемента из комбо, происходит фликер на указанный регион: ![]() Вопрос: как сделать так, чтобы перерисовывался не весь кусок из второго рисунка, а только тот, который был ПОД комбо ? В конце концов я возможно вообще изменю этот переключатель на другой, но интересует именно, как сделать это. Спасибо. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
По-моему, это скорее зависит от того, как реализовано прорисовка перекрываемого контрола.
Инвалидэйтится только кусочек, но не факт что при прорисовке ставится отсечение. Это товй контрол, самописный? Который полностью перерисовывается и мигает? Тогда обрати внимание, как он рисуется: он должен использовать значение невалидного прямоугольника, который выдает CPaintDC и рисовать только в нем. Кроме того, моргание обычно связано с ненужным стиранием. Если его убрать - то даже при полной прорисовке моргания не заметно. И последнее: если прорисовка контрола сложная, то лучше ее делать через буфер. -------------------- ... |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
контрол - мой ( не совсем... ![]() прорисовка работает через буффер, я немного поковырял код и убедился что скорее всего я этой темой займусь сей ночью, когда разрешу все остальные более важные проблемы. вроде бы всё остальное нормально прорисовывается, даже без мигания. Поэтому и странно, что этот ( на нижнем рисунке ) прямоугольник мигает и перерисовывается. попозже настучу сюда что получилось. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |