SDB>Ну, чисто теоретически можно было бы родить потомка CListCtrl, который будет обрабатывать HDN_BEGINTRACK/HDN_ENDTRACK, приходящие от хидера (являющегося его ребенком) и проверять, не стала ли суммарная ширина колонок больше, чем ширина клиенсткой области списка. Другой вопрос, что пользователю может быть не слишком приятно "дерганье" списка и "самопроизвольное" изменение его размеров.
Спасибо за ответ. Потомок CListCtrl у меня и раньше был. Сделал с помощью обработки HDN_ITEMCHANGEDA и HDN_ITEMCHANGEDW в OnNotify(), а наличие скроллбара определяю используя GetScrollBarInfo().
Изменение размера списка проходит незаметно. Во-первых, потому что он находится не в диалоге, а занимает всю площадь popup окна. Во-вторых, окно увеличивается вниз и это не заметно на фоне появления или исчезновения скроллбара, что уже само по себе — "дерганье".