Создаю ATL-ый проект, добавляю обэкт composite control на нем делаю один ListView. Так, вот когда я этот контроль использую в другом приложении во время изменения его размеров он мигает. Что делат? Подскажите пожалуйста.
Здравствуйте bog, Вы писали:
bog>Создаю ATL-ый проект, добавляю обэкт composite control на нем делаю один ListView. Так, вот когда я этот контроль использую в другом приложении во время изменения его размеров он мигает. Что делат? Подскажите пожалуйста.
Ну тут надо выяснить кто кого перекрашивает:
a. composite control — List View
в этом случае необходимо перекрыть рисование и обновление фона под List View
б. другое приложение — composite control(вместе с List View)
тоже самое попробывать поэксперементировать со стилем WS_CLIPCHILDREN для "другое приложение"
в. List View глючит при перерисовке.
перекрывать обновление элементов List View и запретить обновление фона под элементами.
Здравствуйте OlegO, спасибо, что отозвались.
Вы писали:
OO>Ну тут надо выяснить кто кого перекрашивает: OO>a. composite control — List View OO> в этом случае необходимо перекрыть рисование и обновление фона под List View
Попробовал — мигает также
OO>б. другое приложение — composite control(вместе с List View) OO> тоже самое попробывать поэксперементировать со стилем WS_CLIPCHILDREN для "другое приложение"
Попробовал — мигает также
OO>в. List View глючит при перерисовке. OO> перекрывать обновление элементов List View и запретить обновление фона под элементами.
а как "перекрывать обновление элементов List View и запретить обновление фона под элементами"
Заранее благодарен
Здравствуйте bog, Вы писали:
bog>а как "перекрывать обновление элементов List View и запретить обновление фона под элементами" bog>Заранее благодарен
Для собственно отрисовки элементов надо отловить сообщение NM_CUSTOMDRAW (list view).
MSDN/Plafrom SDK/User Interface Services/Windows Common Controls/List View Controls/List View Control Notification Messages
Однако советую все-таки определить, кто красит фон под List View приложение, ActiveX или List View
можно поочередно потестить перекрывая всякие WM_PAINT, WM_ERASEBKGND и т.д. и ничего в них не делая.
Здравствуйте bog, Вы писали:
bog>Создаю ATL-ый проект, добавляю обэкт composite control на нем делаю один ListView. Так, вот когда я этот контроль использую в другом приложении во время изменения его размеров он мигает. Что делат? Подскажите пожалуйста.
Попробуй посмотреть Spy++ может у кого их твоих окон в классе CS_HREDRAW | CS_VREDRAW стоит? Сам ListView не фликает. Точно.
Здравствуйте Snax, Вы писали:
S>Здравствуйте bog, Вы писали:
bog>>Создаю ATL-ый проект, добавляю обэкт composite control на нем делаю один ListView. Так, вот когда я этот контроль использую в другом приложении во время изменения его размеров он мигает. Что делат? Подскажите пожалуйста.
S>Попробуй посмотреть Spy++ может у кого их твоих окон в классе CS_HREDRAW | CS_VREDRAW стоит? Сам ListView не фликает. Точно.
Еще как фликает, но многое зависит от версии эксплорера и режима отображения (в табличном режиме фликает меньше... по крайней мере с 6-ым эксплорером под W2k).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.