У меня была эта проблема, и я решил ее двумя способами, в зависимости от # пунктов. Настройка не рисовать и инициализировать хранение не имеет никакого значения для меня. Заставить нарисовать владельца тоже можно, но у меня была тонна комбо-боксов. Предполагая фиксированный список для каждого выпадающего списка, который не меняет содержимого, список устанавливается один раз.
Очень большой # Предметы:
Сделал поле со списком просто / отключено с помощью SetWindowText, чтобы установить начальную строку, и маленькая кнопка рядом с ним открыла диалоговое окно, позволяющее выбрать элемент из списка управления в режиме отчета для данных, которые были бы в комбо поле (может быть сделано в диалоге).
Умеренные # Предметы:
Сделал пользовательский производный класс со списком, который переопределяет AddString, SelectString и обрабатывает OnDropDown. Когда вы добавляете элементы, они помещают их во временный вектор, а затем в SelectString (может также выполнить переопределение SetCurSel), он добавляет один элемент, который находит и выбирает. При выпадении вниз, он сбрасывает комбинированный список и добавляет все элементы и выбирает текущий выбранный. При падении выпадающего списка есть небольшое замедление, но при небольшом количестве предметов это не заметно.
Это заставило мои диалоги загружаться намного быстрее и все еще быть полностью функциональным без рисования владельцем.