Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
16.02.2016
Размер:
26.09 Mб
Скачать

Virtual lresult OnWizardBack(); virtual lresult OnWizardNext();

Эти методы вызываются средой выполнения при щелчке пользователя соответственно на командных кнопках Back или Next.

Метод возвращает значение 0, если следует выполнить переход на одну страницу назад/вперед. Если возвращается значение -1, то переход не выполняется. Для перехода на конкретную страницу свойств следует вернуть значение идентификатора соответствующего окна диалога. virtual BOOL OnWizardFinish();

Метод вызывается средой выполнения при щелчке пользователя на командной кнопке Finish. Для того чтобы набор свойств не был уничтожен, следует возвратить значение FALSE (0).

Работа со списком изображений Класс CImageList

Класс CImageList инкапсулирует возможность работы со списком одноразмерных изображений. Его непосредственным базовым классом является класс CObject. В этой главе мы неоднократно упоминали о списках изображений, используемых для отображения различных элементов управления, например во вкладках или в окне расширенного редактора. Методы класса CImageList позволяют более эффективно управлять наборами больших и малых пиктограмм и наборами изображений.

Все изображения списка изображений хранятся в одном битовом массиве в экранном формате. Дополнительно список изображений может включать монохромный битовый массив, содержащий маску, используемую для отображения изображений с прозрачным фоном.

Отметим, что пиктограммы всегда содержат маску для отображения с прозрачным фоном.

Члены класса HIMAGELIST m_hImageList;

Указатель списка изображений сопоставленного данному объекту. CImageList ();

Конструктор класса CImageList.

BOOL Create (int ex, int cy, UINT nFlags, int nlnitial, int nGrow); BOOL Create (UINT nBitmapID, int ex, int nGrow, COLORREF crMask);

BOOL Create (LPCTSTR ipszBitmapID, int ex, int nGrow, COLORREF

crMask);

BOOL Create (CImageList& imagelistl, int nlmagel, CImageList& imagelist2, int

nlmage2, int dx, int dy);

Эти методы используются для создания списков изображений. Первый метод создает пустой список изображений, второй и третий - списки изображений из указанных битовых массивов, а четвертый объединяет изображения из двух указанных битовых массивов.

Параметры:

сх, су - размерность одного изображения в пикселях. nFlags - тип создаваемого списка изображений. Этот параметр может быть указан комбинацией следующих значений:

• один из флажков ILC_COLOR* - ILC_COLOR4 (4-битовый цвет, 16 цветов, DIB), ILC_COLOR8, ILC_COLOR16 (16-битовый цвет, DIB), ILC_COLOR24, ILC_COLOR32, ILC_COLORDDB;

• флажок ILC_MASK, указывающий, что список изображений содержим два массива: массив для изображений и монохромный массив, используемый для маски. Если этот флажок не указан, то список изображений будет содержать только один битовый массив для изображений.

nlnitial - количество изображений, первоначально содержащихся в списка

изображений.

nGrow - количество изображений, на которое будет увеличен список изображений при запросе изменения размера для нового изображения.

nBitmapID - ID ресурсов битовых изображений, ассоциируемых с создаваемым списком изображений.

crMask - цвет, используемый для создания маски. Каждый пиксель этого

цвета в указанном битовом изображении заменяется на черный, а в маске

проставляется соответствующий бит.

IpszBitmapID - строка, содержащая ID ресурсов изображений.

imagelistl - указатель на объект CImageList.

nlmagel - количество изображений, содержащихся в imagelistl.

imagelist2 - указатель на объект CImageList.

nlmage2 - количество изображений, содержащихся в imagelist2.

dx, dy - размерность одного изображения в пикселях.

Создание объекта список изображений выполняется в два этапа:

• вызывается конструктор класса CImageList;

• вызывается метод Create, создающий список изображений и пристыковывающий его к объекту CImageList.

HIMAGELIST GetSafeHandle () const;

Метод возвращает дескриптор пристыкованного списка изображений (член класса mhlmageList).

int GetlmageCount () const;

Метод возвращает количество изображений в списке изображений. COLORREF SetBkColor (COLORREF cr);

Метод устанавливает новый цвет фона для изображения из списка изображений. Если параметр сr равен значению CLR_NONE, то изображение имеет прозрачный фон и использует маску. COLORREF GetBkColor () const,

Метод определяет цвет фона для списка изображений и возвращает RGB-цвет.

BOOL Getlmagelnfo (int nlmage, IMAGEINFO* plmagelnfo) const;

Этот метод используется для получения информации об изображении. Структура IMAGEINFO имеет следующее описание:

typedef struct _IMAGEINFO {

HBITMAP hbmlmage;

HBITMAP hbmMask; // указатель монохромной битовой маски' // (или NULL)

int cPlanes;

int cBitsPerPixel;

RECT rclmage; } IMAGEINFO;

BOOL Attach (HIMAGELIST hlmageList);

Метод пристыковывает указанный список изображений к объекту CImageList.

HIMAGELIST Detach ();

Метод отстыковывает указанный список изображений от объекта CImageList.

BOOL DeletelmageList ();

Метод удаляет список изображений. int Add (CBitmap* pbmlmage, CBitmap* pbmMask); "it Add (CBitmap* pbmlmage, COLORREF crMask); "it Add (HICON hlcon);

Эти методы позволяют добавить к списку изображений одно или несколько новых изображений или пиктограмм. При успешном выполнении Методы возвращают индекс первого добавленного элемента, в противном случае - значение -1.

Параметры:

pbmlmage - указатель битового изображения, содержащего одно или не сколько изображений. Количество изображений определяется исходя к ширины.

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

hIсоп - дескриптор пиктограммы, содержащей битовое изображение и маску нового изображения. BOOL Remove (int nlmage);

Метод удаляет изображение с указанным индексом из списка изображений.

BOOL Replace (int nlmage, CBitmap* pbmlmage, CBitmap* pbmMask);

int Replace (int nlmage, HICON hlcon);

Эти методы позволяют заменять изображения в списке изображений.

BOOL Draw (CDC* pdc, int nlmage, POINT pt, UINT nStyle);

Этот метод позволяет нарисовать указанное изображение в указанном

месте в соответствии с заданным контекстом устройства. Метод использую

ется для перерисовки изображений, перемещаемых мышью.

Параметр nStyle может быть указан комбинацией следующих флажков:

ILD_BLEND25, ILD_FOCUS - рисует изображение, используя маску для указания выделения при наличии фокуса;

ILD_BLEND50, ILD_SELECTED, ILD_BLEND . риСует изображение, ис­пользуя маску для указания выбора (50% системного цвета выделе- ш ния);

ILD_MASK - рисует маску;

ILD_NORMAL - рисует изображение, используя цвет фона списка изображений. Для значения цвета фона, равного CLR_NONE, изображение отображается прозрачным с использованием маски;

ILD_TRANSPARENT - изображение отображается прозрачным с использованием маски, вне зависимости от цвета фона.

BOOL SetDragCursorImage (int nDrag, CPoint ptHotSpot);

Метод указывает новое изображение, комбинируемое с данным изображением на время его перемещения мышью (обычно это курсор мыши).

BOOL Read (CArchive* pArchive); BOOL Write (CArchive* pArchive);

Эти методы позволяют сохранять изображения в архиве и читать их из архива.

BOOL BeginDrag (int nlmage, CPoint ptHotSpot);

Этот метод вызывается при начале перемещения изображения. Параметры:

nlmage - индекс перемещаемого изображения.

ptHotSpot - координаты начальной точки перемещения (обычно это позиция курсора).

Обрабатывая сообщение WM_MOUSEMOVE, можно перемещать изображения, используя метод DragMove.

При завершении перемещения (сбросе изображения) следует вызвать метод EndDrag.

static BOOL DragEnter (CWnd* p WndLock, CPoint point);

Этот метод позволяет на время операции перемещения заблокировать изменения для указанного родительского окна и показывать перемещаемое изображение в указанной позиции.

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

Для того, чтобы отменить блокировки на изменение родительского окна, следует вызвать метод CImageList::DragLeave. static BOOL DragLeave (CWnd* pWndLock); static void EndDrag ();

Эти методы вызываются для завершения операции перемещения. static BOOL DragMove (CPoint/)/);

Метод вызывается для перемещения изображения в новую указанную позицию.

static BOOL DragShowNolock (BOOL bShow);

Метод позволяет показывать или скрывать перемещаемое изображение на время операции перемещения без блокировки окна.

Соседние файлы в папке VC++Баженова