Шаг 898 - CListBox.

Автор Каев А. Г.

Класс 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>

Hosted by uCoz