
- •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.
- •Согласование экспортируемых элементов с импортируемыми
Изменение содержимого списка
Для добавления, удаления и замены изображений используются фу-ции Add, Remove, Replace соотсет.
Int CImageList:: Add (Cbitmap* pbmImage, CBbitmap* pbmMask ) - // позволяет не только добавлять сразу несколько битовых массивов,кол-во которых опред. заданной при создании шириной изображений списка, но и зад. маску для изображений.
BOOL CImageList :: Remove (int nImage ) - // удал. элемент с индексом nImage из списка изображений
Знаки в отл. от битовых массивов, уже содержат маску, позволяющую производить рисование а прозрачном режиме. Следующая фу-ция создает значек на основе битового массива и маски (если она есть):
HICON CImageList ::ExtractIcon (int nImage) -//возвращает дискриптор созданного значка для изображения по номеру, задавемому пар. nImage.
Для заполнения и сохр. Всех изображений списка реализованны фу-ции:
BOOL CImageList :: Read (Carchve* pArchive)
и
BOOL CImageList :: Write (Carchve* pArchive) -// используют указатели на объекты класса Carchive.
Т.к. объект класса CImageList лишь представляет в программе объект Windows, путем связывания с ним последнего можно обеспечить доступ к ранее созданному друг. средствами списку. К фу-циям данной группы относятся фу-ции Attach и Datach.
Информация о списке.
Для получения ин-ции о параметрах списка следует пользоватся фу-ями GetImageCount, возвращающей кол-во элементов (изибражений) списка, и GetImageInfo, заполняющей структуру IMAGEINFO ин-цией об изображении по его порядковому номеру в списке:
BOOL CImageList :: GetImageInfo (int nImage, IMAGEINFO* pImageInfo )
Рисование изображений.
Для отображения в прозрачном режиме, когда все точки области устройства вывода изображения имеют один и тот же цвет, следует задать цвет фона изображения таким же, что и цвет области. В этом случае существенно ускоряется процесс вывода, т.к. не требуется дополнительное использ. маски. Для этого класс CImageList имеет в своем составе фу-цию:
COLORREF CImageList :: SetBkColor (COLORREF cr) - // возвращает ранее установленный цвет фона. По умолчанию цвет имеет значение CLR_NONE, в этом случае прозрачный режим реализуется с исп. маски.
Для рисования изображений следует использовать фу-цию Draw:
BOOL CImageList :: Draw (CDC* pdc, int nImage, POINT pt, UINT nStyle) - // осущ. вывод на устройство , определяемое указателем (пар. pdc) на объект класса CDC, по координатам, задаваемым параметром pt. Изображение определяется индексом (параметром nImage). Параметр nStyle задает режим вывода изображения и может содержать комбинацию след. значений.
ILD_NORMAL Рисование осущ. на основе цвета фона, заданного вызовом фу-ции SetBkColor, что позволяет реализовать прозрачный режим и при отсутствии маски.
ILD_TRANSPARENT Рисование осущ. с использованием маски вместо цвета фона.
и другие режимы.
Класс CTreeCtrl (Просмотр дерева)
CObject CCmdTarget CWnd CTreeCtrl
Кроме возможности вывода записей последовательных списков при помощи таких элементов, как список или просмотор списка, Windows предоставляет возможность отображения (и управления) списков, орган. по принципу дерева. Для этого поддерживается элемент управления “просмотр дерева” (TREE VIEW). Для создания этого элемента управления в биб. MFS предназначен как класс CTreeCtrl. Каждая запись просмотра дерева состоит из текстовой строки(надписи) и заданного битового изображения, каждая запись может иметь одну или более подзаписей, связанных с ней. Класс CtreeCtrl предназначен для создания просмотра дерева в диалоге других элементов управления.
Создание просмотра дерева.
Для создания просмотра дерева необходимо использовать фу-цию Create для создания соответ. элемента управления Windows и связывания его с объектом класса CTreeCtrl :
BOOL CTtreeCtrl ::Create(DWORD dwStyle, const RECT&rect, CWnd* pParentWnd, UINT nID ) -// пар. dwStyle может содержать любые комбинации стилей эл. управ., а также слежующие, свойственные рассматриваемому элементу управления.
TVS_HASLINES Дочерние записи будут соединятся на экране линиями со своими род. записями.
TVS_LINESATROOT Записи первого уровня будут соединены с вершиной дерева, в прот. случае они всегда будут отображать свои дочерние записи.
Списки изображений.
Каждая запись просмотра дерева может иметь два ассоциированных с ней значка. Первый выводится на экран, когда запись развернута, второй – когда запись свернута (например, значки открытой и закрытой папки). Кроме этих двух списков приложение может задать список изображений для обозначения состояния записи.
Для работы с изображениями, связанными с просмотром дерева, предназначены фу-ции:
CImageList* CTreeCtrl :: GetImageList (UINT nImage) - //возвращает указ. на список изображений связанных с просмотром дерева, или NULL в случае неудачного завершения. Пар. nImage задает тип списка и может принимать одно из следующих значений.
CImageList* CTreeCtrl :: SetImageList (CImageList* pImageList, int nImageListType) - // устанавливает новый список изображений для просмотра дерева, тип списка задается параметром nImageListType
UINT CTreeCtrl :: GetIndent () - // возвращает сдвиг в пискселях дочерней записи относительно родительской.
void CTreeCtrl :: SetIndent (UINT nIndent) - // задает сдвиг в пикселях доч. записи относ. родительской.
Изменение содержимого дерева.
UINT CTtreeCtrl :: GetCount () - // возвращает число записей, вставленных в просмотр дерева.
UINT CTtreeCtrl :: GetVisibleCount () - // возвращает тек. кол-во видимых записей просм. дерева
Фу-ия DeleteAllItems – для удаления всех записей из просмотра дерева.
Вставку новых записей осуществляет фу-ция:
TREEITEM CTtreeCtrl :: InsertItem(LPTV_INSERTSTRUCTlpInsertStruct) -//осуществляет вставку новых записей.
BOOL CTreeCtrl :: DeleteItem (HTREEITEM hItem) - //удаление ранее вставленной записи
Для изменения или получения всех или части параметров записи предназначены фу-ции SetItem и GetItem.
Для получения изменения только надписи записи – фу-ции GetItemText и SetItemText.
Поиск и сортировка записей дерева.
Фу-ции этой группы предназначены для поиска записей по различным критериям.
HTREEITEM CTreeCtrl ::GetNextItem (HTREEITEM hItem, UINT nCode ) - // возвращает дескриптор след. записи, подходящей по заданным параметрам или NULL если таковая на найдена. Пар. hItem определяет дескриптор записи, относительно которй производится поиск. Пар. nCode задает критерии поиска и может содержать нек. пар. :
TVGN_CARET Вернуть текущую выбранную запись
TVGN_DROPHILITE Вернуть запись, кот. является конеч. целью при операции перетаскивания записи просмотра дерева.
TVGN_FIRSTVISIBLE Вернуть первую видимую запись
TVGN_PARENT Вернуть родительскую запись
HTREEITEM CTreeCtrl ::GetNextSiblingItem(HTREEITEM hIt
em) - // возвращ. дескриптор след. записи
HTREEITEM CTreeCtrl ::GetPrevSiblingItem(HTREEITEM hItem) - // возвращ. дескриптор предыдущей записи
BOOL CTreeCtrl ::SortChildren (HTREEITEM hItem) - // сортирует доч. записи род. записи, указанной в hItem. Если значение параметра hItem равно NULL, то будет отсортирован весь просмотр дерева.