90 lines
2.6 KiB
C++
90 lines
2.6 KiB
C++
#ifndef _VI_CTRL_IMAGE_LIST_DEFINES_H_
|
|
#define _VI_CTRL_IMAGE_LIST_DEFINES_H_
|
|
|
|
|
|
#include <XArray.h>
|
|
|
|
typedef XArray<CBitmap *> BITMAPVECTOR;
|
|
typedef XArray<COLORREF> COLORVECTOR;
|
|
|
|
|
|
#define NILD_NOMASK 0x00000000
|
|
#define NILD_USEIMAGEMASK 0x00000001
|
|
#define NILD_USEGLOBALMASK 0x00000002
|
|
#define NILD_USEIMAGECLRMASK 0x00000003
|
|
#define NILD_USEGLOBALCLRMASK 0x00000004
|
|
|
|
class AFX_EXT_CLASS VIImageList
|
|
{
|
|
|
|
public:
|
|
|
|
VIImageList();
|
|
~VIImageList();
|
|
|
|
// Returns the numbers of image present in the image list
|
|
int GetImageCount();
|
|
|
|
// Adds an image to the image list at specified position,
|
|
// an optional bitmap can be used as mask when drawing image using flag NILD_USEIMAGEMASK
|
|
int AddImage(CBitmap *bm,CBitmap *mask = NULL);
|
|
|
|
// Adds an image to the image list at specified position,
|
|
// an optional color can be used as color key when drawing image using flag NILD_USEIMAGECLRMASK
|
|
int AddImage(CBitmap *bm,COLORREF clr = CLR_NONE);
|
|
|
|
// Sets the color used as color key when drawing using the NILD_USEGLOBALCLRMASK
|
|
void SetGlobalClrMask(COLORREF clr);
|
|
|
|
// Gets the color used as color key when drawing using the NILD_USEGLOBALCLRMASK
|
|
COLORREF GetGlobalClrMask();
|
|
|
|
// Sets the bitmap used as mask when drawing using the NILD_USEGLOBALMASK
|
|
void SetGlobalBimapMask(CBitmap *b);
|
|
|
|
// Gets the bitmap used as mask when drawing using the NILD_USEGLOBALMASK
|
|
CBitmap *GetGlobalBitmapMask();
|
|
|
|
// Remove an image from the image list at specified position
|
|
void RemoveImage(int pos);
|
|
|
|
//
|
|
//Draws the nth image into the specified DC available modes are :
|
|
// NILD_NOMASK Draw Without colorkey
|
|
// NILD_USEIMAGEMASK Uses image mask
|
|
// NILD_USEGLOBALMASK Uses global image mask
|
|
// NILD_USEIMAGECLRMASK Uses image color mask
|
|
// NILD_USEGLOBALCLRMASK Uses global color mask
|
|
BOOL Draw(CDC *cdc,int img,POINT p,DWORD mode = NILD_NOMASK);
|
|
|
|
// Gets images at specified position
|
|
void GetImages(int pos,CBitmap **bm, CBitmap **mask);
|
|
|
|
// Sets images at specified position, and returns old images
|
|
void SetImages(int pos,CBitmap *bm, CBitmap *mask,CBitmap **oldbm, CBitmap **oldmask);
|
|
|
|
|
|
// Gets image color mask at specified position
|
|
COLORREF GetImageClrMask(int pos);
|
|
|
|
// Sets image color mask at specified position
|
|
void SetImageClrMask(int pos,COLORREF clr);
|
|
|
|
|
|
// Delete every images added with AddImage, after a call to this function the image list is empty,
|
|
// CBitmap used to in previous calls to addimage have also been destroyed
|
|
void DeleteAllImages();
|
|
|
|
protected:
|
|
|
|
BITMAPVECTOR m_BimapArray;
|
|
BITMAPVECTOR m_MaskArray;
|
|
|
|
COLORVECTOR m_ColorArray;
|
|
|
|
CBitmap *m_GlobalMask;
|
|
COLORREF m_GlobalClrMask;
|
|
|
|
};
|
|
|
|
#endif |