Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по Леонову, 5семестр.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
503.3 Кб
Скачать

Работа с комбинированном списком

CObject ->CCmdTarget ->CWnd->CComboBox

Это эл. упр., пред. собой комбинацию окна списка с окном текстового поля и наз. “ком. списком” (COMBO BOX).Часть ком. списка – непосредственно список – может выводится на экран все время(стиль CBS_SIMPLE) или может как бы раскрываться из текстового поля (стили CBS_DROPDOWN и CBS_DROPDOWNLIST). Текущая выбранная запись списка выводится в прямоугольном окне, кот. пред. собой окно простейшего тектового поля, и может быть как доступна, так и не доступна для редактирования. Если к этому же комбин. список определен как раскрывающийся, то при нажатии символьной клавиши на клавиатуре строка, начинающаяся с данного символа, будет выделена.

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

Инициализация

Создание объекта CComboBox и собственно комбинированного списка Windows в коде программы требует вызова конструктора класса и фу-ции Create:

BOOL CcomboBox::Create(DWORD dwStyle,const RECT&rect,CWnd*pParentWnd,UINT nID) - // создает комб. Список и связывает его с объектом CcomboBox. Фу-ция возвращ. значение TRUE в случае успешного завершения. Пар. dwStyle задает стиль комб. Списка, кот. может принимать комбинацию след. значений.

CBS_AUTOHSCROLL текст в текс. поле авт. прокручивается по горизонтали вправо и влево.

CBS_SIMPLE список изображается на экране все время, редактиров. разрешено

Основные операции с комб. списком.

Для управления раскрывающимся списком след. фу-ции:

void CComboBox ::ShowDropDown(BOOL bShowIt = TRUE) - //делает видимым или невидимым список в комб. списке, имеющим стиль CBS_DROPDOWN и CBS_DROPDOWNLIST

BOOL CComboBox ::GetDroppedState() - // опред., видим или нет раскрывающийся список в ком. списке.

int CСomboBox ::GetDroppedWidth()- //возвращ. минимальную допуст. Ширину раскрывающегося списка в ком. списке

int CСomboBox ::SetDroppedWidth(UINT nWidth)- // устанавливает. мин. допустимую ширину раскрыв. списка в комб. списке.

void CcomboBox ::GetDroppedControlRect(LPRECT lprect) - //возвращ. экранные коорд. Видимого раскрывающегося списка. Пар. lprect – указатель на структуру RECT, кот. получит запрашиваемые координаты.

int CСomboBox ::GetBTextLen(int nIndex) – фу-ция для определения длины строки (в байтах)

Операции со строками

int CСomboBox :: AddString(LPCTSTR lpszString) - // доб. строку в список

int CСomboBox ::DeleteString(UINT nIndex) - // удаляет строку из списка

int CСomboBox ::FindString(int nStartAfter,LPCTSTR lpszString) -// осущ. поиск строки

int CСomboBox ::FindStringExact(int nIndexAfter,LPCTSTR lpszFind) -// ищет строку, целиком совпадающую с заданной.

31. Классы CimageList и CtreeCtrl. Класс cImageList

CObject CImageList

Список изображений – мощное средство поддержки работы с бол. кол-вом битовых массивов и значков, доступ к которым осущ. по номеру. Требование к изображениям списка заключается в том, что все они должны иметь один размер. Список также может хранить монохромный битовый массив., используемый в качестве маски. Список поддерживает фу-ции рисования, создания и удаления всего списка, доб. и унич. состав. его элементов, их объединения и переноса. В MFC есть класс CImageList, инкапсулирующий возможности списка изображений. Список –это объект Windows, и класс CImageList, представляет удобный интерфейс с этим объектом.

Создание списка.

Осущ. при пом. дан. класса в два этапа. Во-первых следует создать объект класса, а затем вызвать одну из версий фу-ции Create для создания списка-объекта Windows.

BOOL CImageList :: Create ( int cx, int cy, BOOL bMask, int nInitial, int nGrow ) - // создает пустой список, с создаваемыми парам. сx и cy с размерами битовых массивов. При зад. ненулевого знач. парам. nInitial, сразу при соз. списка созд. битовый массив, кот. в даль. будет содержать изображения. Пар. nNGrow задает число, кот. определ. на сколько изображ. следует увеличивать битовый массив при необходимости. Пар. bMask опред. какого типа следует создавать список – содержащий маски или нет.