CComboBox класс предоставляет функциональные возможности Windows списком.
Поле со списком состоит из списка, в сочетании с статический элемент управления или элемент управления. Список части элемента управления может отображаться все время или может только падение вниз, когда пользователь выбирает стрелку вниз рядом с элементом управления.
Выделенного элемента (если таковой имеется) в окне списка отображается в статические или изменить элемент управления. Кроме того если поле со списком стиль списка, пользователь может ввести первоначальный характер одного из пунктов в списке и списке, если она видна, будет посвящен следующий элемент с этой исходного символа.
В следующей таблице сравниваются три комбо бокс .  стили;
Стиль
Когда виден список?
Статические или редактирования элемента управления?
Простой
Всегда
Редактирование
Раскрывающийся список
Когда сбросили
Редактирование
Раскрывающийся список
Когда сбросили
Статический
Можно создать объект CComboBox из шаблона диалогового окна или непосредственно в коде. В обоих случаях сначала вызовите конструктор CComboBox для построения объект CComboBox ; Затем вызовите функцию-член Create для создания элемента управления и прикрепить его к объект CComboBox.
Если вы хотите обработать Windows уведомления от сообщения в combo box своего родительского элемента (обычно класса, производного от CDialog), добавьте функцию-член карты сообщение вход и обработчика сообщений для родительского класса для каждого сообщения.
Каждая запись сообщений карта имеет следующий вид:
ON_Уведомление(код,memberFxn)
где id определяет Идентификатор дочернего окна элемента управления комбо бокс, отправку уведомлений и memberFxn — это имя функции-члена родительского, написанный для обработки уведомления.
Прототип функции родительского элемента выглядит следующим:
afx_msgvoidmemberFxn();
Порядок, в котором некоторые уведомления будет направлять предсказать невозможно. В частности уведомление CBN_SELCHANGE может произойти до или после уведомления о CBN_CLOSEUP.
Потенциальные записей сообщений карты являются следующие:
O&N_CBN_CLOSEUPnbsp; (Для Windows 3.1 и более поздних версиях.) Поле списка в поле со списком закрыт. Это сообщение уведомления не отправляется на поле со списком стиль CBS_SIMPLE.
O&N_CBN_DBLCLKnbsp; Пользователь дважды щелкает строку в списке поле со списком. Это уведомление только сообщения для списком с CBS_SIMPLE стилем. Для поля со списком с CBS_DROPDOWN или CBS_DROPDOWNLIST стилем двойной щелчок не может произойти потому, что один клик скрывает поле со списком.
O&N_CBN_DROPDOWNnbsp; Поле списка в поле со списком вот-вот падение вниз (сделать видимым). Это сообщение уведомления может произойти только в поле со списком с CBS_DROPDOWN или CBS_DROPDOWNLIST стиль.
O&N_CBN_EDITCHANGEnbsp; Пользователь принял меры, возможно, изменен текст в части управления edit в combo box. В отличие от сообщения CBN_EDITUPDATE это сообщение отправляется после того, как Windows обновляет экран. Не отправляется, если в поле со списком стиль CBS_DROPDOWNLIST.
O&N_CBN_EDITUPDATEnbsp; Часть управления edit в combo box — отображение измененного текста. Это сообщение уведомления отправляется после того, как элемент управления отформатирован текст, но до того, как он отображает текст. Не отправляется, если в поле со списком стиль CBS_DROPDOWNLIST.
O&N_CBN_ERRSPACEnbsp; Поле со списком не может выделить достаточно памяти для выполнения конкретного запроса.
O&N_CBN_SELENDCANCELnbsp; (Для Windows 3.1 и более поздних версиях.) Указывает, что должна быть отменена пользователем выбора. Пользователь щелкает элемент и затем нажимает на другого окна или элемента управления для скрытия списка поля со списком. Это сообщение уведомления отправляется до сообщение уведомления CBN_CLOSEUP для указания, что от выбора пользователя должны быть проигнорированы. CBN_SELENDCANCEL или CBN_SELENDOK уведомление отправляется сообщение даже если сообщение CBN_CLOSEUP уведомительное сообщение не отправляется (как в случае списком с CBS_SIMPLE стилем).
O&N_CBN_SELENDOKnbsp; Пользователь выбирает элемент и затем нажимает клавишу ENTER или нажимает клавишу Стрелка вниз для скрытия списка поля со списком. Это сообщение уведомления отправляется до CBN_CLOSEUP сообщение для указания пользователем выбора считать действительными. CBN_SELENDCANCEL или CBN_SELENDOK уведомление отправляется сообщение даже если сообщение CBN_CLOSEUP уведомительное сообщение не отправляется (как в случае списком с CBS_SIMPLE стилем).
O&N_CBN_KILLFOCUSnbsp; Поле со списком теряет фокус ввода.
O&N_CBN_SELCHANGEnbsp; Выбор в списке поле списка должен быть изменен из-за пользователя, щелкнув в окне списка или изменения состояния выделения с помощью клавиш со стрелками. При обработке этого сообщения, текст в поле редактирования комбинированного окна можно получить только через GetLBText или другой аналогичной функции. Нельзя использовать GetWindowText.
O&N_CBN_SETFOCUSnbsp; Поле со списком получает фокус ввода.
Если вы создаете объект CComboBox в диалоговом окне (через ресурс диалогового окна), объект CComboBox автоматически удаляется при закрытии пользователем диалогового.
Если внедренный объект CComboBox внутри другого объекта window, вам не нужно уничтожить его. Если вы создаете объект CComboBox в стеке, он будет удален автоматически. Если вы создаете объект CComboBox в куче с использованием новой функции, необходимо вызвать Удаление объекта, чтобы уничтожить его, когда поле со списком Windows уничтожила.