void InitIML() { int i; HIMAGELIST hImageList = ImageList_Create(16, 16, ILC_COLOR32, 3, 0); HBITMAP hbIcons = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 48, 16, LR_DEFAULTCOLOR); ImageList_Add(hImageList, hbIcons, NULL); for (i = 0; i != 3; i++) stateicons[i] = ImageList_GetIcon(hImageList, i, ILD_NORMAL); SendMessage(hWnd_Tab, TCM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)hImageList); hCfgTabiml = ImageList_Create(16, 16, ILC_COLOR32, 6, 0); hbIcons = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP3), IMAGE_BITMAP, 96, 16, LR_DEFAULTCOLOR); ImageList_AddMasked(hCfgTabiml, hbIcons, 0); /////listview images hImageList = ImageList_Create(28, 14, ILC_COLOR32 | ILC_MASK, 32, 0); ImageList_SetBkColor(hImageList, CLR_NONE); lvwIML = hImageList; hbIcons = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP2), IMAGE_BITMAP, 896, 14, /*ILC_MASK |*/ LR_DEFAULTCOLOR); //ImageList_Remove(hImageList, -1); //char asdf[32]; //sprintf(asdf, "%d", CLR_INVALID == -1); //MessageBox(0,asdf,0,0); ImageList_AddMasked(hImageList, hbIcons, 0); for (i = 0; i != NUM_BNICONS; i++) bnicons[i] = ImageList_GetIcon(hImageList, i, ILD_NORMAL); }
TreeView::ImageList::ImageList(const uint x,const uint y,const uint selected,const uint unselected) : handle(ImageList_Create(x,y,ILC_COLOR16|ILC_MASK,0,2)) { if (handle) { try { if ( ImageList_AddMasked( static_cast<HIMAGELIST>(handle), Resource::Bitmap( selected ), 0 ) == -1 || ImageList_AddMasked( static_cast<HIMAGELIST>(handle), Resource::Bitmap( unselected ), 0 ) == -1 ) throw Application::Exception( IDS_ERR_FAILED, L"ImageList_Add()" ); } catch (const Application::Exception& exception) { ImageList_Destroy( static_cast<HIMAGELIST>(handle) ); throw exception; } } else { throw Application::Exception( IDS_ERR_FAILED, L"ImageList_Create()" ); } }
BOOL LV_Init(HWND hwnd) { ListView_SetExtendedListViewStyle(hwnd, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); HIMAGELIST hImageList; hImageList = ImageList_Create(12, 12, ILC_COLOR8 | ILC_MASK, 2, 2); HBITMAP hbm; hbm = (HBITMAP)LoadImage(g_hInstance, MAKEINTRESOURCE(2), IMAGE_BITMAP, 12, 12, LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS); assert(hbm); ImageList_AddMasked(hImageList, hbm, RGB(192, 192, 192)); DeleteObject(hbm); hbm = (HBITMAP)LoadImage(g_hInstance, MAKEINTRESOURCE(3), IMAGE_BITMAP, 12, 12, LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS); assert(hbm); ImageList_AddMasked(hImageList, hbm, RGB(192, 192, 192)); DeleteObject(hbm); hbm = (HBITMAP)LoadImage(g_hInstance, MAKEINTRESOURCE(4), IMAGE_BITMAP, 12, 12, LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS); assert(hbm); ImageList_AddMasked(hImageList, hbm, RGB(192, 192, 192)); DeleteObject(hbm); ListView_SetImageList(hwnd, hImageList, LVSIL_SMALL); LV_COLUMNW Column; ZeroMemory(&Column, sizeof(Column)); Column.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH | LVCF_IMAGE; Column.fmt = LVCFMT_LEFT; Column.cx = NAME_COLUMN_WIDTH; Column.pszText = g_szNameHead; Column.iSubItem = 0; Column.iImage = 0; ListView_InsertColumn(hwnd, 0, &Column); Column.cx = SUB_COLUMN_WIDTH; Column.pszText = g_szSubstituteHead; Column.iSubItem = 1; Column.iImage = 2; ListView_InsertColumn(hwnd, 1, &Column); UINT State = LVIS_SELECTED | LVIS_FOCUSED; ListView_SetItemState(hwnd, 0, State, State); return TRUE; }
BOOL FileBrowser::setImageList(int root_clean_id, int root_dirty_id, int open_node_id, int closed_node_id, int leaf_id) { HBITMAP hbmp; COLORREF maskColour = RGB(192, 192, 192); const int nbBitmaps = 5; // Creation of image list if ((_hImaLst = ImageList_Create(CX_BITMAP, CY_BITMAP, ILC_COLOR32 | ILC_MASK, nbBitmaps, 0)) == NULL) return FALSE; // Add the bmp in the list hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(root_clean_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(root_dirty_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(open_node_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(closed_node_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(leaf_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hImaLst, hbmp, maskColour); DeleteObject(hbmp); if (ImageList_GetImageCount(_hImaLst) < nbBitmaps) return FALSE; // Set image list to the tree view TreeView_SetImageList(_treeView.getHSelf(), _hImaLst, TVSIL_NORMAL); return TRUE; }
static BOOL ImageView_CreateToolBar(HWND hwnd) { INT numButtons = sizeof(Buttons) / sizeof(Buttons[0]); hToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | CCS_BOTTOM | TBSTYLE_TOOLTIPS, 0, 0, 0, 0, hwnd, 0, hInstance, NULL); if(hToolBar != NULL) { HIMAGELIST hImageList; SendMessage(hToolBar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_HIDECLIPPEDBUTTONS); SendMessage(hToolBar, TB_BUTTONSTRUCTSIZE, sizeof(Buttons[0]), 0); hImageList = ImageList_Create(TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, ILC_MASK | ILC_COLOR24, 1, 1); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_PREVICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_NEXTICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_ZOOMPICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_ZOOMMICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_SAVEICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_PRINTICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_ROT1ICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_ROT2ICON), IMAGE_BITMAP, TB_IMAGE_WIDTH, TB_IMAGE_HEIGHT, LR_DEFAULTCOLOR), RGB(255, 255, 255)); if (hImageList == NULL) return FALSE; ImageList_Destroy((HIMAGELIST)SendMessage(hToolBar, TB_SETIMAGELIST, 0, (LPARAM)hImageList)); SendMessage(hToolBar, TB_ADDBUTTONS, numButtons, (LPARAM)Buttons); return TRUE; } return FALSE; }
void CViewClasses::OnInitialUpdate() { //set the image lists m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0); HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW)); ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0)); SetImageList(m_himlNormal, LVSIL_NORMAL); ::DeleteObject(hbm); // Adjust style to show lines and [+] button DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE); dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT; SetWindowLongPtr(GWL_STYLE, dwStyle); DeleteAllItems(); // Add some tree-view items HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0); HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1); AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3); AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3); AddItem(htiCTreeViewApp, _T("InitInstance()"), 3); HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1); AddItem(htiMainFrame, _T("CMainFrame()"), 3); AddItem(htiMainFrame, _T("OnCommand()"), 4); AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4); AddItem(htiMainFrame, _T("WndProc()"), 4); HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1); AddItem(htiView, _T("CView()"), 3); AddItem(htiView, _T("OnInitialUpdate()"), 4); AddItem(htiView, _T("WndProc()"), 4); // Expand some tree-view items Expand(htiRoot, TVE_EXPAND); Expand(htiCTreeViewApp, TVE_EXPAND); }
static VALUE swinilist_addmasked(VALUE obj,VALUE bitmap,VALUE maskcolor){ struct SwinBitmap* sb; struct SwinImagelist* si; HBITMAP img; int r; if(rb_obj_is_kind_of(bitmap,cSwinBitmap)){ Data_Get_Struct(bitmap,struct SwinBitmap,sb); img = swl_copyimage(sb); } else { rb_raise(rb_eArgError,"Not a bitmap for arg1"); return Qfalse; } Data_Get_Struct(obj,struct SwinImagelist,si); SWIN_IMAGELISTALIVECHECK(si) r=ImageList_AddMasked(si->himagelist,img,NUM2UINT(maskcolor)); DeleteObject(img); if(r<0){ rb_raise(rb_eRuntimeError,"Image not added"); return Qfalse; } return INT2NUM(r); }
static VOID sBeginDrag (PGROUPMAN pGM) { HIMAGELIST hIml; TL_DRAGBITMAP tldb; NONCLIENTMETRICS ncm; // get offset number to convert client to window coordinates ncm.cbSize = sizeof(NONCLIENTMETRICS); SystemParametersInfo (SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0); pGM->iXCursorOffset = ncm.iBorderWidth; pGM->iYCursorOffset = ncm.iBorderWidth + ncm.iCaptionHeight; if (GetMenu (pGM->hWndParent)) pGM->iYCursorOffset += ncm.iMenuHeight; GetCursorPos (&tldb.ptCursorPos); ScreenToClient (pGM->hWndTree, &tldb.ptCursorPos); tldb.ulFlags = 0; TreeList_RenderDragBitmap (pGM->hWndTree, &tldb); hIml = ImageList_Create (tldb.sizeDrag.cx, tldb.sizeDrag.cy, ILC_MASK|ILC_COLORDDB, 1, 1); ImageList_AddMasked (hIml, tldb.hbmDrag, GetSysColor (COLOR_WINDOW)); DeleteObject (tldb.hbmDrag); ImageList_BeginDrag (hIml, 0, tldb.ptHotSpot.x, tldb.ptHotSpot.y); ImageList_Destroy (hIml); ImageList_DragEnter (pGM->hWndParent, tldb.ptCursorPos.x, tldb.ptCursorPos.y); }
// Adds a bitmap, using the specified colour to create the mask bitmap // Note that wxImageList creates new bitmaps, so you may delete // 'bitmap'. int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) { HBITMAP hbmp; #if wxUSE_WXDIB && wxUSE_IMAGE // See the comment in overloaded Add() above. AutoHBITMAP hbmpRelease; if ( bitmap.HasAlpha() ) { hbmp = wxDIB(bitmap.ConvertToImage(), wxDIB::PixelFormat_NotPreMultiplied).Detach(); hbmpRelease.Init(hbmp); } else #endif // wxUSE_WXDIB && wxUSE_IMAGE hbmp = GetHbitmapOf(bitmap); int index = ImageList_AddMasked(GetHImageList(), hbmp, wxColourToRGB(maskColour)); if ( index == -1 ) { wxLogError(_("Couldn't add an image to the image list.")); } return index; }
static HWND CreateToolbar(HWND hwndParent, int nButtons, int nBtnWidth, int nBtnHeight, HBITMAP hbm) { HWND hTBWnd; // Handle of toolbar window HIMAGELIST imageList; // Cria a toolbar hTBWnd = CreateWindowEx(0, TOOLBARCLASSNAME, "", WS_CHILD | WS_VISIBLE | CCS_TOP | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT, 0, 0, 0, 0, hwndParent, NULL, hAppInstance, NULL ); if(!hTBWnd) return NULL; SetToolBarHandle(hTBWnd); // Create an ImageList with transparent bitmaps if(hbm && IsBitmap(hbm)) { nButtons = MAX(1, MIN(nButtons, MIN(nBtnWidth, MAX_IMAGELIST_IMAGES))); imageList = ImageList_Create(nBtnWidth, nBtnHeight, ILC_COLORDDB | ILC_MASK, nButtons, 0); ImageList_AddMasked(imageList, hbm, RGB(0, 255, 0)); DeleteObject(hbm); SendMessage(hTBWnd, TB_SETIMAGELIST, 0, (LPARAM)imageList); } return hTBWnd; }
HBITMAP CToolbar::SetImageList(HBITMAP hBitmap, COLORREF clrMask) { if ( m_himl ) { ImageList_Destroy( m_himl ); m_himl = NULL; } BITMAP bmp = { 0 }; if ( GetObject( hBitmap, sizeof(bmp), &bmp ) ) { UINT uFlags = ILC_COLOR; switch(bmp.bmBitsPixel) { case 16: uFlags = ILC_COLOR16; break; case 24: uFlags = ILC_COLOR24; break; case 32: uFlags = ILC_COLOR32; break; } m_himl = ImageList_Create( bmp.bmHeight, bmp.bmHeight, uFlags | ILC_MASK, bmp.bmWidth / bmp.bmHeight, 0 ); if ( m_himl ) { ImageList_AddMasked( m_himl, hBitmap, clrMask ); cSendMessage( TB_SETIMAGELIST, 0, (LPARAM) m_himl ); m_szButton.cx = m_szButton.cy = bmp.bmHeight; } } return hBitmap; }
static VOID sInitKeyList (PSPLITKEYSTRUCT psks) { LV_COLUMN lvC; CHAR sz[256]; HBITMAP hBmp; HDC hDC; INT iNumBits; // create image list hDC = GetDC (NULL); // DC for desktop iNumBits = GetDeviceCaps (hDC, BITSPIXEL) * GetDeviceCaps (hDC, PLANES); ReleaseDC (NULL, hDC); if (iNumBits <= 8) { psks->hIml = ImageList_Create (16, 16, ILC_COLOR|ILC_MASK, NUM_BITMAPS, 0); hBmp = LoadBitmap (g_hInst, MAKEINTRESOURCE (IDB_IMAGES4BIT)); ImageList_AddMasked (psks->hIml, hBmp, RGB(255, 0, 255)); DeleteObject (hBmp); } else { psks->hIml = ImageList_Create (16, 16, ILC_COLOR24|ILC_MASK, NUM_BITMAPS, 0); hBmp = LoadBitmap (g_hInst, MAKEINTRESOURCE (IDB_IMAGES24BIT)); ImageList_AddMasked (psks->hIml, hBmp, RGB(255, 0, 255)); DeleteObject (hBmp); } ListView_SetImageList (psks->hwndList, psks->hIml, LVSIL_SMALL); lvC.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM; lvC.fmt = LVCFMT_LEFT; lvC.pszText = sz; LoadString (g_hInst, IDS_USERID, sz, sizeof(sz)); lvC.cx = INITIAL_SHAREKEY_COLUMNWIDTH; lvC.iSubItem = 0; if (ListView_InsertColumn (psks->hwndList, 0, &lvC) == -1) return; LoadString (g_hInst, IDS_SHARES, sz, sizeof(sz)); lvC.cx = 50; lvC.iSubItem = 1; if (ListView_InsertColumn (psks->hwndList, 1, &lvC) == -1) return; }
BOOL CSkin::LoadCommandBitmap(CXMLElement* pBase, const CString& strPath) { static LPCTSTR pszNames[] = { _T("id"), _T("id1"), _T("id2"), _T("id3"), _T("id4"), _T("id5"), _T("id6"), _T("id7"), _T("id8"), _T("id9"), NULL }; CString strFile = strPath; strFile += pBase->GetAttributeValue( _T("id") ); strFile += pBase->GetAttributeValue( _T("path") ); HBITMAP hBitmap = LoadBitmap( strFile ); if ( hBitmap == NULL ) return TRUE; strFile = pBase->GetAttributeValue( _T("mask") ); COLORREF crMask = RGB( 0, 255, 0 ); if ( strFile.GetLength() == 6 ) { int nRed, nGreen, nBlue; _stscanf( strFile.Mid( 0, 2 ), _T("%x"), &nRed ); _stscanf( strFile.Mid( 2, 2 ), _T("%x"), &nGreen ); _stscanf( strFile.Mid( 4, 2 ), _T("%x"), &nBlue ); crMask = RGB( nRed, nGreen, nBlue ); } CoolInterface.ConfirmImageList(); int nBase = ImageList_AddMasked( CoolInterface.m_pImages.m_hImageList, hBitmap, crMask ); if ( nBase < 0 ) { DeleteObject( hBitmap ); return FALSE; } int nIndex = 0; for ( POSITION pos = pBase->GetElementIterator() ; pos ; ) { CXMLElement* pXML = pBase->GetNextElement( pos ); if ( ! pXML->IsNamed( _T("image") ) ) continue; strFile = pXML->GetAttributeValue( _T("index") ); if ( strFile.GetLength() ) _stscanf( strFile, _T("%i"), &nIndex ); nIndex += nBase; for ( int nName = 0 ; pszNames[ nName ] ; nName++ ) { UINT nID = LookupCommandID( pXML, pszNames[ nName ] ); if ( nID ) CoolInterface.m_pImageMap.SetAt( (LPVOID)nID, (LPVOID)nIndex ); if ( nName && ! nID ) break; } nIndex -= nBase; nIndex ++; } DeleteObject( hBitmap ); return TRUE; }
BOOL CNdbTreeView::CreateTreeView(HINSTANCE hInst, HWND hParent, DWORD dwId) { m_hInstance = hInst ; m_hParent = hParent ; m_dwId = dwId ; HIMAGELIST himl ; HBITMAP hbmp ; DWORD dwCount = 0 ; m_hControl = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WC_TREEVIEW, "Tree View", WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_SINGLEEXPAND, 0, 0, 0, 0, m_hParent, (HMENU)m_dwId, m_hInstance, NULL) ; if(!m_hControl) return FALSE ; if((himl = ImageList_Create(nX, nY, ILC_MASK | ILC_COLOR8, 4, 0)) == NULL) return FALSE ; hbmp = LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDI_OPEN)); hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_OPEN), IMAGE_BITMAP, nX, 0, LR_DEFAULTSIZE); m_nOpen = ImageList_AddMasked(himl, hbmp, clr); DeleteObject(hbmp); hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_CLOSED), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE); m_nClosed = ImageList_AddMasked(himl, hbmp, clr); DeleteObject(hbmp); hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_COMPUTER),IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE); m_nComputer = ImageList_AddMasked(himl, hbmp, clr); DeleteObject(hbmp); hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_DATABASE), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE); m_nDatabase = ImageList_AddMasked(himl, hbmp, clr); DeleteObject(hbmp); if(ImageList_GetImageCount(himl) < 4) return FALSE ; TreeView_SetImageList(m_hControl, himl, TVSIL_NORMAL); ShowWindow(m_hControl, SW_SHOW) ; return TRUE ; }
bool IconList::changeIcon(int index, const TCHAR *iconLocation) const { HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); if (!hBmp) return false; int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp); ImageList_AddMasked(_hImglst, (HBITMAP)hBmp, RGB(255,0,255)); ::DeleteObject(hBmp); return (i == index); }
int CImgList::AddMasked(int id, COLORREF mask) { HBITMAP hm; hm = LoadBitmap((HINSTANCE)GetModuleHandle(NULL), MAKEINTRESOURCE(id)); if(hm) return ImageList_AddMasked(himlIcons, hm, mask); else return -1; }
static void PrepareResultsList(HWND hwnd){ LVCOLUMNW lvc; HBITMAP hBmp; HMODULE hIcons; hIcons = LoadLibraryExW(g_NotePaths.IconsPath, NULL, LOAD_LIBRARY_AS_DATAFILE); if(hIcons){ //prepare and set list view image lists hBmp = LoadBitmapW(hIcons, MAKEINTRESOURCEW(IDB_CTRL_SMALL)); m_hImlSearch = ImageList_Create(16, 16, ILC_COLOR24 | ILC_MASK, 0, 1); ImageList_AddMasked(m_hImlSearch, hBmp, CLR_MASK); DeleteBitmap(hBmp); DeleteObject((void *)CLR_MASK); //prepare image list for check image hBmp = LoadBitmapW(hIcons, MAKEINTRESOURCEW(IDB_CHECKS)); m_hImlDefCheck = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 0); ImageList_AddMasked(m_hImlDefCheck, hBmp, CLR_MASK); DeleteBitmap(hBmp); DeleteObject((void *)CLR_MASK); FreeLibrary(hIcons); } ListView_SetImageList(m_hListResults, m_hImlSearch, LVSIL_SMALL); SendMessageW(m_hListResults, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES, LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES); ZeroMemory(&lvc, sizeof(lvc)); lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH; for(int i = 0; i < NELEMS(m_cols); i++){ if(i > 0){ lvc.cx = 240; } else{ lvc.cx = 180; } lvc.iSubItem = i; lvc.pszText = m_cols[i]; SendMessageW(m_hListResults, LVM_INSERTCOLUMNW, i, (LPARAM)&lvc); } //add checks CTreeView_Subclass(GetDlgItem(hwnd, IDC_TVW_SEARCH_DATES)); TreeView_SetImageList(GetDlgItem(hwnd, IDC_TVW_SEARCH_DATES), m_hImlDefCheck, TVSIL_NORMAL); PrepareChecksList(GetDlgItem(hwnd, IDC_TVW_SEARCH_DATES)); }
void Menu_AddImage(HBITMAP hBitmap, COLORREF crTrans) { HBITMAP hbm, hbmGray; COLORREF crBack; hbm = Paint_Bitmap_CopyBitmap(hBitmap); ImageList_AddMasked(hImageListHot, hbm, crTrans); DeleteObject(hbm); crBack = crTrans; hbm = Paint_Bitmap_CopyBitmap(hBitmap); hbmGray = Paint_Bitmap_GrayScale(hbm, 4.5, &crBack); ImageList_AddMasked(hImageListCold, hbmGray, crBack); /* Clear up the mess =\ */ DeleteObject(hbm); DeleteObject(hbmGray); }
// Adds a bitmap, using the specified colour to create the mask bitmap // Note that wxImageList creates new bitmaps, so you may delete // 'bitmap'. int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) { int index = ImageList_AddMasked(GetHImageList(), GetHbitmapOf(bitmap), wxColourToRGB(maskColour)); if ( index == -1 ) { wxLogError(_("Couldn't add an image to the image list.")); } return index; }
void CRasterResourceListCtrl::_OnInitListView(int cItems) { // Put an imagelist in the view, for our pic previews. // Destroy any old list if (_himlPics) { ImageList_Destroy(_himlPics); _himlPics = NULL; } CSize sizeImages(VIEW_IMAGE_SIZE, VIEW_IMAGE_SIZE); // Note: this color depth must match that which we get back from the ViewResource // Also: ILC_MASK must be specified, because of the overlay _himlPics = ImageList_Create(sizeImages.cx, sizeImages.cy, ILC_COLOR8 | ILC_MASK, cItems, 30); if (_himlPics) { CImageList *pTemp = CImageList::FromHandle(_himlPics); if (pTemp) { HIMAGELIST himlOld = (HIMAGELIST)SetImageList(pTemp, LVSIL_NORMAL); } // pTemp is a temporary object that we don't need to delete. // Load an overlay image to use for "unused" items HBITMAP hbmOverlay = LoadBitmap(AfxGetResourceHandle(), MAKEINTRESOURCE(IDB_OVERLAYOLD40)); if (hbmOverlay) { int iOverlayImageIndex = ImageList_AddMasked(_himlPics, hbmOverlay, RGB(255, 0, 255)); ImageList_SetOverlayImage(_himlPics, iOverlayImageIndex, OVERLAYINDEX_UNUSED); DeleteObject(hbmOverlay); } HBITMAP hbmCorrupt = LoadBitmap(AfxGetResourceHandle(), MAKEINTRESOURCE(IDB_CORRUPTRESOURCE)); if (hbmCorrupt) { _iCorruptBitmapIndex = ImageList_Add(_himlPics, hbmCorrupt, NULL); DeleteObject(hbmCorrupt); } } // Adjust the icon spacing so things don't look too spread out. CSize sizeSpacing(sizeImages.cx + 20, sizeImages.cy + 30); SetIconSpacing(sizeSpacing); // LVS_EX_BORDERSELECT, supported on IE 4.0 or later. -> Removed, as it causes problems in details view // LVS_EX_DOUBLEBUFFER, supported on XP or later. SetExtendedStyle(GetExtendedStyle() | 0x00010000 | LVS_EX_INFOTIP); }
BOOL FunctionListPanel::setTreeViewImageList(int root_id, int node_id, int leaf_id) { HBITMAP hbmp; COLORREF maskColour = RGB(192, 192, 192); const int nbBitmaps = 3; // Creation of image list if ((_hTreeViewImaLst = ImageList_Create(CX_BITMAP, CY_BITMAP, ILC_COLOR32 | ILC_MASK, nbBitmaps, 0)) == NULL) return FALSE; // Add the bmp in the list hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(root_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hTreeViewImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(node_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hTreeViewImaLst, hbmp, maskColour); DeleteObject(hbmp); hbmp = LoadBitmap(_hInst, MAKEINTRESOURCE(leaf_id)); if (hbmp == NULL) return FALSE; ImageList_AddMasked(_hTreeViewImaLst, hbmp, maskColour); DeleteObject(hbmp); if (ImageList_GetImageCount(_hTreeViewImaLst) < nbBitmaps) return FALSE; // Set image list to the tree view TreeView_SetImageList(_treeView.getHSelf(), _hTreeViewImaLst, TVSIL_NORMAL); TreeView_SetImageList(_treeViewSearchResult.getHSelf(), _hTreeViewImaLst, TVSIL_NORMAL); return TRUE; }
void MainInitToolbar(HWND hWnd) { int i; int AnyButtons = 0, RealButtons = 0; TBBUTTON* TbButtons; HWND hToolbar; HIMAGELIST hImgList; HBITMAP hBmp; for (AnyButtons = 0; Buttons[AnyButtons] != 0; AnyButtons++) ; // no code required TbButtons = malloc(sizeof(TBBUTTON) * AnyButtons); for (i = 0; i < AnyButtons; i++) { if (Buttons[i] == -1) { TbButtons[i].iBitmap = 0; TbButtons[i].fsStyle = BTNS_SEP; TbButtons[i].idCommand = 0; } else { TbButtons[i].iBitmap = RealButtons; RealButtons++; TbButtons[i].idCommand = Buttons[i]; TbButtons[i].fsStyle = TBSTYLE_BUTTON; } TbButtons[i].fsState = TBSTATE_ENABLED; TbButtons[i].dwData = (DWORD_PTR) NULL; TbButtons[i].iString = (INT_PTR) NULL; } hToolbar = CreateWindowEx( 0, TOOLBARCLASSNAME, NULL, TBSTYLE_TOOLTIPS | WS_CHILD | WS_VISIBLE | CCS_NODIVIDER | TBSTYLE_FLAT, // TBSTYLE_TOOLTIPS | WS_CHILD | WS_VISIBLE | TBSTYLE_WRAPABLE | /*CCS_NORESIZE |*/ CCS_NODIVIDER | TBSTYLE_FLAT, 0, 0, 600, 28, hWnd, (HMENU) ID_TOOLBAR, hThisInstance, NULL); // create the image list hImgList = ImageList_Create(18, 18, ILC_COLOR4 | ILC_MASK, RealButtons, RealButtons); hBmp = LoadBitmap(hThisInstance, MAKEINTRESOURCE(BMP_TOOLBAR)); ImageList_AddMasked(hImgList, hBmp, RGB(255,0,255)); DeleteObject(hBmp); SendMessage(hToolbar, TB_SETIMAGELIST, 0, (LPARAM) hImgList); // setup the toolbar properties SendMessage(hToolbar, TB_SETBUTTONSIZE, 0, MAKELONG(24,24)); SendMessage(hToolbar, TB_SETBITMAPSIZE, 0, MAKELONG(18,18)); SendMessage(hToolbar, TB_ADDBUTTONS, AnyButtons, (LPARAM) TbButtons); free(TbButtons); }
BOOL CToolBarWnd::SetTbButtonImage(HBITMAP* phImage,UINT uMsgSetImage /* = TB_SETIMAGELIST */,COLORREF crMask /* = RGB */) { if(m_nTbButtonCnt <= 0) return FALSE; HIMAGELIST hImgList = ImageList_Create(m_cxImage, m_cyImage, ILC_COLOR24|ILC_MASK, m_nTbButtonCnt - m_nSepCnt, 3); for(int iImage = 0; iImage < m_nTbButtonCnt - m_nSepCnt; iImage++) { ImageList_AddMasked(hImgList,phImage[iImage],crMask); } SendMessage(uMsgSetImage, 0L, (LPARAM)hImgList); DeleteObject(hImgList); return TRUE; }
BOOLEAN ToolBarSetImageList( IN PTOOLBAR_OBJECT ToolBar, IN UINT BitmapId, IN COLORREF Mask ) { HBITMAP hBitmap; BITMAP Bitmap = {0}; LONG Width, Height; HIMAGELIST himlNormal; HIMAGELIST himlGray; hBitmap = LoadBitmap(SdkInstance, MAKEINTRESOURCE(BitmapId)); ASSERT(hBitmap != NULL); if (hBitmap == NULL) { return FALSE; } if (!GetObject(hBitmap, sizeof(BITMAP), &Bitmap)) { return FALSE; } Width = Bitmap.bmWidth / ToolBar->Count; Height = Bitmap.bmHeight; himlNormal = ImageList_Create(Width, Height, ILC_COLOR32 | ILC_MASK, ToolBar->Count, 0); ASSERT(himlNormal); if (himlNormal == NULL) { return FALSE; } ImageList_AddMasked(himlNormal, hBitmap, Mask); SendMessage(ToolBar->hWnd, TB_SETIMAGELIST, 0L, (LPARAM)himlNormal); SendMessage(ToolBar->hWnd, TB_SETHOTIMAGELIST, 0L, (LPARAM)himlNormal); DeleteObject(hBitmap); hBitmap = NULL; himlGray = SdkCreateGrayImageList(himlNormal); SendMessage(ToolBar->hWnd, TB_SETDISABLEDIMAGELIST, 0L, (LPARAM)himlGray); ToolBar->himlNormal = himlNormal; ToolBar->himlGray = himlGray; return TRUE; }
void CMyCombo::SetImages(int nImages, UINT ImageID) { if (m_himlImages) { ImageList_Destroy(m_himlImages); m_himlImages = NULL; } HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(ImageID)); BITMAP bm = {0}; ::GetObject(hbm, sizeof(BITMAP), &bm); int iImageWidth = bm.bmWidth / nImages; int iImageHeight = bm.bmHeight; COLORREF crMask = RGB(255, 0, 255); m_himlImages = ImageList_Create(iImageWidth, iImageHeight, ILC_COLOR32 | ILC_MASK, nImages, 0); ImageList_AddMasked(m_himlImages, hbm, crMask); ::DeleteObject(hbm); }
HIMAGELIST CSkin::LoadImageList(int cx, int cy, LPCTSTR pszFile, UINT uDef) { #ifdef _WIN32_WCE UINT uFlags = ILC_COLOR|ILC_MASK; #else UINT uFlags = ILC_COLOR24|ILC_MASK; #endif HIMAGELIST himl = ImageList_Create(cx, cy, uFlags, 0, 0); if (!himl) return NULL; HBITMAP hbmp = LoadBitmap(pszFile); if (!hbmp) hbmp = ::LoadBitmap(GetInst(), (LPCTSTR)uDef); ImageList_AddMasked(himl, hbmp, MASK_COLOR); DeleteObject(hbmp); return himl; }
HWND CViewToolbar::Create() { if ((m_hWnd = CreateWindow(TOOLBARCLASSNAME, NULL, WS_CHILD | WS_CLIPSIBLINGS | CCS_NODIVIDER | CCS_NOPARENTALIGN | TBSTYLE_FLAT | TBSTYLE_LIST, 0, 0, 0, 0, m_hWndParent, NULL, g_hInstance, NULL)) == NULL) return NULL; HBITMAP hBitmap; if ((hBitmap = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_VIEW_TOOLBAR))) == NULL) return NULL; if ((m_hImageList = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, MAX_VIEW_TOOLBAR_ICONS, 0)) == NULL) { DeleteObject(hBitmap); return NULL; } if (ImageList_AddMasked(m_hImageList, hBitmap, RGB(0, 0, 0)) == -1) { DeleteObject(hBitmap); return NULL; } DeleteObject(hBitmap); SendMessage(m_hWnd, TB_SETIMAGELIST, 0, (LPARAM)m_hImageList); TBBUTTON tbb[MAX_CATEGORIES]; for (int i = 0; i < MAX_CATEGORIES; i++) { tbb[i].iBitmap = iIcons[i]; tbb[i].idCommand = uCommands[i]; tbb[i].fsState = TBSTATE_ENABLED; tbb[i].fsStyle = TBSTYLE_AUTOSIZE | TBSTYLE_CHECKGROUP; tbb[i].dwData = 0; tbb[i].iString = -1; } tbb[0].fsState |= TBSTATE_CHECKED; if (!SendMessage(m_hWnd, TB_ADDBUTTONS, MAX_CATEGORIES, (LPARAM)tbb)) return NULL; for (int i = 0; i < MAX_CATEGORIES; i++) { m_nCounts[i] = -1; LoadString(g_hInstance, ID_VIEW_ALL + i, m_szFormats[i], MAX_CAPTION); } UpdateTexts(); return m_hWnd; }
HRESULT CCImageList::AddBitmapFromFileMasked(int* pn, PCWSTR wszFile, COLORREF cMask) { HBITMAP hBitmap; int i; hBitmap = (HBITMAP)LoadImage(NULL, wszFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); if(hBitmap == NULL) return E_FAIL; i = ImageList_AddMasked(m_hImageList, hBitmap, cMask); DeleteObject(hBitmap); if(pn) *pn = i; if(i == -1) return E_FAIL; return S_OK; }
int CShellWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here m_ShellTreeCtrl.Create(WS_CHILD|WS_VISIBLE|TVS_SHOWSELALWAYS|TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT|TVS_TRACKSELECT, CRect(0,0,0,0), this, 100); m_ShellTreeCtrl.ModifyStyleEx(0, WS_EX_CLIENTEDGE); // bring the tooltips to front CWnd* pTT = m_ShellTreeCtrl.FromHandle((HWND) m_ShellTreeCtrl.SendMessage(TVM_GETTOOLTIPS)); if (pTT != NULL) pTT->SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); if (!m_fType.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWN|CBS_LOWERCASE, CRect(0,0,0,0), this, ID_SHELLWND_COMBO)) { return -1; // fail to create } //m_fType.ModifyStyleEx(0, WS_EX_CLIENTEDGE); CFont* font = m_ShellTreeCtrl.GetFont(); m_fType.SetFont(font); m_fType.AddString("*.htm;*.html;*.shtm;*.shtml;*.mht;*.txt;"); m_fType.AddString("*.txt;"); m_fType.AddString("*.htm;*.html;"); m_fType.AddString("*.c;*.cpp;*.h;"); m_fType.AddString("*.bmp;*.jpg;*.gif;*.png;"); m_fType.AddString("*.*"); // CImageList img; m_wndRef.CreateEx(this); img.Create(13, 15, ILC_COLORDDB|ILC_MASK, 1, 1); HBITMAP hbmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_REFRESH)); ImageList_AddMasked(img.GetSafeHandle(), hbmp, RGB(255,0,255)); DeleteObject(hbmp); m_wndRef.GetToolBarCtrl().SetImageList(&img); img.Detach(); m_wndRef.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT|TBSTYLE_TOOLTIPS ); m_wndRef.SetButtonInfo(0, IDOK, TBSTYLE_BUTTON, 0); m_wndRef.GetToolBarCtrl().GetToolTips()->UpdateTipText(IDS_REFRESH, this, IDOK); return 0; }
static VOID SetImageList(HWND hwnd) { HIMAGELIST hImageList; hImageList = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR24, 1, 1); if (!hImageList) { MessageBox(hwnd, _T("ImageList it is not created!"), NULL, MB_OK); return; } ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_PLAYICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_STOPICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_EJECTICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_BACKWARDICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_SEEKBACKICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_SEEKFORWICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_AddMasked(hImageList, LoadImage(hInstance, MAKEINTRESOURCE(IDB_FORWARDICON), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR), RGB(255, 255, 255)); ImageList_Destroy((HIMAGELIST)SendMessage(hToolBar, TB_SETIMAGELIST, 0, (LPARAM)hImageList)); }