Здравствуйте, WinterMute, Вы писали:
WM>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, WinterMute, Вы писали:
FH>>>>Присоединяюсь к вопросу. Собственно как?
FH>>>>Предположим у меня CListCtrl, растянутый на весь экран. При изменеии размера окна, CListCtrl начинает подмигивать. С другой стороны, если менять размер окна explorer'а, то окно FolderView (класс SysListView32) совсем не мигает. Как такого добиться?
WM>>>Если присоединяешся к вопросам, то почему бы не присоединиться к ответам и не почитать их?
А>>Согласен присоединиться к чему угодно, если это прольёт свет на вышеназванную проблему.
А>>Рассмотрим ответы:
А>>1) BackBuffer + WM_ERASEBKGND — приблизительно такое решение мне и самому в голову приходило, но мне оно показалось слишком сложным. Неужто нет ничего попроще? Я был лучшего мнения о MFC.
WM>Ты был неправильного мнения о MFC
. Никаких чудес MFC не делает, только автоматизирует некоторые рутинные операции по обработке сообщений. Эта проблема проистикает из особенностей архитектуры WinApi, так что, так просто, установкой абстрактного стиля WS_DO_NOT_MIGAT проблему не решить. Но можешь поискать на CodeProject или где нибудь ещё, классы которые автоматизируют "антимигание", для WTL я такое точно видел, для MFC, по идее, тоже должны быть.
Спасибо большое за разъяснения, WinterMute. Приятно, когда кто-то расставляет все точки над i.
У меня есть ещё один вопрос, на который хотелось бы услышать мнение знающего человека. В explorer'е CListCtrl работает замечательно. Как Microsoft этого добилась? У меня на этот счёт есть две версии. Либо они как-то по-умному переписали DefWindowProc, скажем, с использованием BackBuffer + WM_ERASEBKGND, либо они используют какую-то продвинутую версию CListCtrl. Поделитесь, пожалуйста, со мной своими соображениями.