
- •1. Признаки сложных систем. Сложность, присущая программному обеспечению.
- •2. Компоненты объектно-ориентированного подхода.
- •3. Объекты и классы с точки зрения объектно-ориентированного проектирования.
- •4. Модели и диаграммы, используемые в объектно-ориентированном подходе.
- •5. Техника отладки.
- •6. Работа с многофайловыми проектами. Использование включаемых файлов.
- •9. Простое наследование. Контроль доступа к атрибутам класса.
- •10. Виртуальные функции (вф) и абстрактные классы.
- •11. Множественное и виртуальное наследование.Множественное наследование
- •12 Перегрузка операций
- •13. Шаблоны функций, макросы, inline-функции.
- •14. Шаблоны классов.
- •15. Обработка исключительных ситуаций, структурная обработка исключений.
- •16. Пространства имён. Кратко о механизме пространства имен
- •Зачем нужен механизм пространства имен?
- •Имитация средствами языка Си
- •Правило составления имени
- •Недостатки
- •17 Строки и потоки.
- •18.Стандартная библиотека: Контейнеры
- •19 Реализация устойчивости объектов средствами mfc.
- •20. Структура Windows-приложения WinApi
- •21. Структура Windows-приложения, использующего библиотеку mfc
- •Документы и их представление
- •22. Обработка сообщений
- •23. Контекст устройства
- •24.Объекты gdi
- •25.Использование контекста отображения в памяти.
- •26.Режимы отображения.
- •27.Работа с меню. Обработка сообщений.
- •28.Работа с диалогами. Обработка сообщений.
- •29. Работа с полями ввода и кнопками.
- •30. Работа со списками и выпадающими списками. Работа со списком
- •Работа с комбинированном списком
- •Инициализация
- •Операции со строками
- •31. Классы CimageList и CtreeCtrl. Класс cImageList
- •Изменение содержимого списка
- •32. Классы CimageList и ClistCtrl. Класс cImageList
- •Изменение содержимого списка
- •Создание просмотра списка
- •Работа со столбцами
- •Функции для работы со списком в целом
- •Рабочие области просмотра списка
- •Поиск и сортировка записей
- •33. Классы CprogressCtrl, cRichEdit Ctrl, CsliderCtrl, cSpinButton Ctrl.
- •34. Классы cPropertySheet и cPropertyPage.
- •35. Передача информации в диалог и обратно.
- •36. Работа со стандартными диалогами.
- •37.Обработка сообщений от клавиатуры и мыши(wm_char,wm_keYxxx,wm_xButtoNxxx,
- •38 Таймеры, использование времени простоя программы и локального цикла обработки сообщений.
- •39. Библиотеки динамической компоновки. Явная и неявная загрузка dll.
- •Согласование экспортируемых элементов с импортируемыми
30. Работа со списками и выпадающими списками. Работа со списком
С помощью класса CListBox можно создать такой элемент управления Windows, как “список”. Список представляет собой прямоугольник, внутри которго находится последовательность текстовых или пользовательских элементов, которые пользователь может пролистывать и выбирать. Список может исп. , например, для просмотра имен файлов на диске.
Можно создавать списки, позволяющие выбирать толькоодну запись (элемент) или несколько одновременно (списки множ. выбора). Когда пользлватель выбирает запись в списке – она выделяется, и окно-список посылает род. окну извещение.
Инициализация
Создание объекта CLlistBox и собственно списка Windows в коде программы требует создания (вызова) конструктора и фук-ции Create:
BOOL CListBox::Create(
DWORD dwStyle,
Const RECT&rect,
CWnd*pParentWnd,
UINT nID) -// создает окно-список и присоединяет его к объекту ClistBox.; пар. dwStyle –задает стильсписка,
Изменения параметров списка
Int ClistBox ::GetHorizontalExtent () -//возвр. ширину списка в пикселях, в пределах которых список может прокручиваться по горизонали. Фу-цию можно исп. только для списков, имеющих гор. полосу прокрутки.
void CListBox ::SetHorizonrtalExtent(int cxExtent) - // уст. Ширину списка по гор., в пред. Кот. список может прокручиваться.
int ClistBox :: GetItemHeight ( int nIndex) -// возвр. высоту записи в списке в пикселях с указ. индексом nIndex
Фу-ции для работы с содержимым списка.
После того как список был создан необходимо его заполнить.
int CListBox ::AddString(LPCTSTR lpszItem) - // фу-ция добавляет строку текста в качестве элемента в список, возвращает индекс новой строки в списке. Пар. lpszItem – указывает на завершающуюся нулевым символом строку, которая должна быть добавлена к списку.
Очень часто в приложениях списки применяются для того, чтобы вывести список файлов на диске, для их просмотра и/или выбора.
Для того, чтобы облегчить зап. списка в этих случаях, сущ. фу-ция Dir
int ClistBox ::Dir(UINT attr, LPCTSTR lpsz WildCard)- заполняет список содержимым директориев. Пар. attr определяет, файлы с какими атрибутами будут добавлены в список. Он может быть любой комбинацией из следующих значений:
0*0000 Файлы, доступные для чтения и записи
0*0001 Файлы, доступные только для чтения
0*0002 Скрытые файлы
0*0004 Системные файлы
0*0010 Подкаталоги
int ClistBox::DeleteString(UINT nIndex) - // удаляет из списка элемент, определяемым индексом (пар. nIndex),и возвращает кол-во оставшихся элементов.
viod ClistBox::ResetContent() - //удаляет все элементы из списка
Фу-ции предназнач. Для поиска строки в списке, совпадающей, начиная с первого символа, с заданной строкой.
int ClistBox::FindString(int nStartAfter, LPCTSTR lpszItem) - //осущ. только поиск строки в списке
int ClistBox::SelectString(int nStartAfter, LPCTSTR lpszItem) - //ищет и, выделяет найденную строку, если строка найдена, то она выделяется и, если нужно, список прокручивается стем, чтобы строка была стала видна. Пар. nStartAfter содержит индекс строки списка, нах. перед строкой, с кот. будет начат поиск. Если достигнут конец списка, то поиск будет продолжен с начала списка до строки, заданной в nStartAfter. Пар. lpszItem –указ. на оканчивающуюся нулевым символом строку, кот. должа быть найдена.
Операции над элементами списка
Фу-ции этой группы предназначены для получения ин-ции о конкретных элементах списка или, наоборот, для выделения эл. списка и связывания с ними 32-разрядных значений и указателей.
int ClistBox ::GetCount() - // возвращ. кол-во эл. в списке.
С первого взгляда может показаться, что эл. упр. “список” предназначен, в основном для тектовых эл. или для визуализации в виде списка произвольных данных, скорее, временного использования
int ClistBox ::GetSelItems(int nMaxItems,LPINT rgIndex) -// позволяет полусчить индексы строк, кот. выб. в данный момент в списке. Это знач. зад. пар. nMaxItems rgIndex. Пар. rgIndex –задает размерность буфера. В отличие от чисто “программных“ классов-контейнеров, описываемые списки отличаются в сторону визуализации и обладают меньшей гибкостью, требуемой для хранения объектов самых разных типов. Действит. эл.упр. “список” существует только тогда, когда он виден или, по крайней мере, может быть немедленно отображен.