Класс CListBox обеспечивает функциональные возможности списка Windows. Список отображает список элементов, типа имен файла, которые пользователь может просматривать и выбирать.
В простом списке, пользователь может выбирать только один элемент. В списке с несвязным выбором, диапазон элементов может быть выбран. Когда пользователь выбирает элемент, он высвечен, и список посылает уведомительное сообщение родительскому окну.
Вы можете создавать список или из шаблона диалога или непосредственно в вашем коде. Чтобы создавать это непосредственно, создайте объект CListBox, затем вызовите Create функцию, чтобы создать список Windows. Чтобы использовать список в шаблоне диалога, объявите переменную списка в вашем классе диалогового окна, затем используйте DDX_CONTROL в вашей функции класса DoDataExchange диалогового окна, чтобы подключить поле с управлением. (ClassWizard делает это для Вас автоматически, когда Вы добавляете переменную управления к вашему классу диалогового окна.)
Конструкция может быть процесс с одним шагом в классе, полученном из CListBox. Запишите конструктор для полученного класса, и вызовите Create изнутри конструктора.
Если Вы хотите обрабатывать уведомительные сообщения Windows, посланные списком родителю (обычно класс, полученный из CDialog), добавьте вход карты сообщения и функцию драйвера сообщения к родительскому классу для каждого сообщения.
Каждый вход карты сообщения берет следующую форму:
ON_Notification( id, memberFxn )
Где идентификатор ID управления списка, посылающего сообщение и memberFxn - имя родительской функции которая будет вызвана.
Функциональный прототип функции родителя следующий:
afx_msg void memberFxn( );
Следующее - список потенциальных входов карты сообщения и описания случаев, в которых они были бы посланы родителю:
ON_LBN_DBLCLK Пользователь дважды щелкает строку в списке. Только список, который имеет LBS_NOTIFY стиль, пошлет это уведомительное сообщение. ON_LBN_ERRSPACE Список не может распределять достаточно памяти, чтобы встретить запрос. ON_LBN_KILLFOCUS Список теряет фокус ввода. ON_LBN_SELCANCEL Текущий выбор списка отменен. Это сообщение только послано, когда список имеет LBS_NOTIFY стиль. ON_LBN_SELCHANGE Выбор в списке собирается изменяться. Это сообщение не послано, если выбор изменен CListBox::SetCurSel функцией . Это сообщение применяется только к списку, который имеет LBS_NOTIFY стиль. LBN_SELCHANGE уведомительное сообщение послано для списка с несвязным выбором всякий раз, когда пользователь нажимает клавишу курсора, даже если выбор не изменяется. ON_LBN_SETFOCUS Список получает фокус ввода. ON_WM_CHARTOITEM Определенное пользователем окно списка не содержащие строк получает WM_CHAR сообщение. ON_WM_VKEYTOITEM Список с LBS_WANTKEYBOARDINPUT стилем получает WM_KEYDOWN сообщение.
Если Вы создаете объект CListBox внутри диалогового окна (через ресурс диалога), объект CListBox автоматически разрушен, когда пользователь закрывает диалоговое окно.
Если Вы создаете объект CListBox внутри окна, Вы можете быть должны уничтожить объект CListBox. Если Вы создаете объект CListBox на стеке, это разрушено автоматически. Если Вы создаете объект CListBox на "куче ", используя new функцию, Вы должны вызвать delete на объекте, чтобы уничтожить его когда пользователь закрывает родительское окно.
Если Вы распределяете любую память в объекте CListBox, перегрузите CListBox деструктор, чтобы распорядиться распределением.
#include <afxwin.h>