Доброго времени суток! Эта тема уже муссировалась в форуме, но я ненашел для себя никаких ответов. Проблема - при перерисовывании окна кнопки моргают, как это устранить? Пишу задачу на MASM-е, сделал окно с кучей кнопок, кнопки окрашиваются в разные цвета. Кнопки создаю так - CreateWindowEx,NULL, ADDR ButtonClassName,ADDR ButtonText,\ WS_CHILD or WS_VISIBLE or BS_OWNERDRAW,\ XBtm,YBtm,13,13,hWin,IDControl,hInstance,NULL Перекрашиваю их по WM_CTLCOLORSTATIC, но если их не перекрашивать, все равно они моргают. Как я понимаю мне нужно как-то обрабатывать WM_ERASEBKGND, или еще что-то? Заранее спасибо!
Спасибо Xerx! Моргание пропало, но теперь на фоне окна появились остатки текста с предидущего окна. С этим что-то можно сделать?
ATX >но теперь на фоне окна появились остатки текста с предидущего окна. Не понял. Поподробнее можно? Скрин например. P.S. Насколько помню, выставление данных стилей приводит к созданию региона отласти перерисовки клиентской области, который не включает в себя все области под дочерними элементами с дескрипторами (созданных через CreateWindow('something', ...)). Либо нужно выводить текст через GDI, либо задавать цвет и кисть фона STATIC-элементов. Как-то так.
Тут я немного ошибся, я перерисовываю не по WM_CTLCOLORSTATIC а по WM_CTLCOLORBTN Перерисовывать по WM_DRAWITEM тоже пробовал - эфект точно такойже :-(
Само окно создаю через DialogBoxParam со стилями (xStyle) WS_CAPTION or WS_SYSMENU or WS_VISIBLE А присловутые контролы:CreateWindowEx,NULL, ADDR ButtonClassName,ADDR ButtonText,\ WS_CHILD or WS_VISIBLE or BS_OWNERDRAW,\ XBtm,YBtm,13,13,hWin,IDControl,hInstance,NULL С классом "button"
По логике, если окно создано со стилем WS_CLIPCHILDREN и у кнопок стиль BS_OWNERDRAW, то при перерисовке область под кнопками закрашивается текущей кистью окна. ATX, ты можешь выложить весь код архивом? Или хотя бы нужную часть.