IMAGELIST
The CImageList object is a collection of the same sized images, all of which can be referred to by its index. The ImageList are used to proficiently manage the large sets of icon or bitmaps. The ImageList is not a control as it is not a window. They are used with some various types of controls like list control, tree control & tab control.
Steps to form an image list:
1. Make an SDI application
2. Generate a CImageList object as m_ImageList by choosing the class tabpage and right clicking on the CimagelistView object. Now Choose the add member variable.
3. Type the coding as shown below in the constructor.
CImagelistView::CImagelistView()
{
m_ImageList.Create(32,32,TRUE,4,1);
}
The first 2 parameters for Create are the dimensions of each image in the pixels and it is represented as cx of type int and cy of the type int. Both the cx and cy are 32 in this illustration. The fourth parameter is the initial number of images and it is four in this situation. The last parameter is by how much it can grow and it is 1 in this situation.
4. Override the user defined function Addbitmaptoimagelist.
5. To override the user defined function Right Clicking on the CImagelistView . The menu will pop up.
6. Then Add member function is choosen.
7. Specify the return type in the Function type text box. Now type BOOL for this illustration.
8. In the Function Declaration type the signature of the function, that is the function name followed by the parameter list.
9. For this illustration type Addbitmaptoimagelist(UINT resid) in the function declaration.
10. Generate 4 bitmaps namely the IDB_BITMAP2, IDB_BITMAP3, IDB_BITMAP4,
IDB_BITMAP5 and pass it to the Addbitmapimagelist function as the parameter.
11. To create a bitmap follow the steps as shown below.
Click the resource tabpage.
Expand the resources tree control
Right click on the bitmap resource.
Choose insert bitmap.
The editor will be exhibited.
Generate a bitmap with the drawing tools available and save.
The name of the bitmap will be automatically formed.
Addbitmaptoimagelist(IDB_BITMAP2);
Addbitmaptoimagelist(IDB_BITMAP3);
Addbitmaptoimagelist(IDB_BITMAP4);
Addbitmaptoimagelist(IDB_BITMAP5);
}
12 Type the coding as shown below in the Addbitmaptoimagelist function.
BOOL CImagelistView::Addbitmaptoimagelist(UINT resid)
{
BOOL b;
CBitmap bmp;
b=bmp.LoadBitmap(resid);
if(b != FALSE)
{
b=m_ImageList.Add(&bmp,RGB(255,255,255));
bmp.DeleteObject();
}
return b; }
The LoadBitmap member function of the CBitmap is used to initialize the bitmap object bmp. The Add member function of the CImagelist relates the bitmap with the image list. The DeleteObject recover the memory engaged by the gdi object, namely the bitmap in this situation.
13. Type the coding as shown below in OnDraw.
void CImagelistView::OnDraw(CDC* pDC)
{ The parameter pDC is a pointer to a device context. If it is null then the function
generates a memory device context that is compatible with the system display.
CPoint pt(0,0);
for(int i=0; i<4; i++)
{
m_ImageList.SetBkColor(RGB(123,111,222));
m_ImageList.Draw(pDC,i,pt,ILD_NORMAL);
ILD_NORMAL is the style & the images are drawn using the background color.
pt.x += 50;
}
}
14. Construct & then execute the project.
15. Four-bitmaps will be displayed side by side.