Шаг 898 - CListBox

898_1.gif (1079 b)

Класс CListBox обеспечивает функциональные возможности списка Windows. Список отображает список элементов, типа имен файла, которые пользователь может просматривать и выбирать.

В простом списке, пользователь может выбирать только один элемент. В списке с несвязным выбором, диапазон элементов может быть выбран. Когда пользователь выбирает элемент, он высвечен, и список посылает уведомительное сообщение родительскому окну.

Вы можете создавать список или из шаблона диалога или непосредственно в вашем коде. Чтобы создавать это непосредственно, создайте объект CListBox, затем вызовите Create функцию, чтобы создать список Windows. Чтобы использовать список в шаблоне диалога, объявите переменную списка в вашем классе диалогового окна, затем используйте DDX_CONTROL в вашей функции класса DoDataExchange диалогового окна, чтобы подключить поле с управлением. (ClassWizard делает это для Вас автоматически, когда Вы добавляете переменную управления к вашему классу диалогового окна)

Конструкция может быть процесс с одним шагом в классе, полученном из CListBox. Запишите конструктор для полученного класса, и вызовите Create изнутри конструктора.

Если Вы хотите обрабатывать уведомительные сообщения Windows, посланные списком родителю (обычно класс, полученный из CDialog), добавьте вход карты сообщения и функцию драйвера сообщения к родительскому классу для каждого сообщения.

Каждый вход карты сообщения берет следующую форму:

ON_Notification( id, memberFxn )

Где идентификатор ID управления списка, посылающего сообщение и memberFxn - имя родительской функции которая будет вызвана.

Функциональный прототип функции родителя следующий:

afx_msg void memberFxn( );

Следующее - список потенциальных входов карты сообщения и описания случаев, в которых они были бы посланы родителю:

Если Вы создаете объект CListBox внутри диалогового окна (через ресурс диалога), объект CListBox автоматически разрушен, когда пользователь закрывает диалоговое окно.

Если Вы создаете объект CListBox внутри окна, Вы можете быть должны уничтожить объект CListBox. Если Вы создаете объект CListBox на стеке, это разрушено автоматически. Если Вы создаете объект CListBox на "куче ", используя new функцию, Вы должны вызвать delete на объекте, чтобы уничтожить его когда пользователь закрывает родительское окно.

Если Вы распределяете любую память в объекте CListBox, перегрузите CListBox деструктор, чтобы распорядиться распределением.

#include <afxwin.h>

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 11.02.2002