How to Initialize the Image List
Every item in a tree-view control can have two images associated with it. An item displays one image when it is selected and the other when it is not. To include images with tree-view items, first use the Image Lists functions to create an image list and add images to it. Then associate the image list with the tree-view control by using the TVM_SETIMAGELIST message.
What you need to know
Technologies
Prerequisites
- C/C++
- Windows User Interface Programming
Instructions
Initialize the Image List
The following example creates an image list, adds three bitmaps to the list, and associates the image list with a tree-view control.
// InitTreeViewImageLists - creates an image list, adds three bitmaps // to it, and associates the image list with a tree-view control. // Returns TRUE if successful, or FALSE otherwise. // hwndTV - handle to the tree-view control. // // Global variables and constants: // g_hInst - the global instance handle. // g_nOpen, g_nClosed, and g_nDocument - global indexes of the images. // CX_BITMAP and CY_BITMAP - width and height of an icon. // NUM_BITMAPS - number of bitmaps to add to the image list. // IDB_OPEN_FILE, IDB_CLOSED_FILE, IDB_DOCUMENT - // resource identifiers of the bitmaps. BOOL InitTreeViewImageLists(HWND hwndTV) { HIMAGELIST himl; // handle to image list HBITMAP hbmp; // handle to bitmap // Create the image list. if ((himl = ImageList_Create(CX_BITMAP, CY_BITMAP, FALSE, NUM_BITMAPS, 0)) == NULL) return FALSE; // Add the open file, closed file, and document bitmaps. hbmp = LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_OPEN_FILE)); g_nOpen = ImageList_Add(himl, hbmp, (HBITMAP)NULL); DeleteObject(hbmp); hbmp = LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_CLOSED_FILE)); g_nClosed = ImageList_Add(himl, hbmp, (HBITMAP)NULL); DeleteObject(hbmp); hbmp = LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_DOCUMENT)); g_nDocument = ImageList_Add(himl, hbmp, (HBITMAP)NULL); DeleteObject(hbmp); // Fail if not all of the images were added. if (ImageList_GetImageCount(himl) < 3) return FALSE; // Associate the image list with the tree-view control. TreeView_SetImageList(hwndTV, himl, TVSIL_NORMAL); return TRUE; }
Related topics
Show: