void LoadIcons(void) { hIconsList = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK, 0, 100); ImageList_AddIcon(hIconsList, Skin_LoadIcon(SKINICON_EVENT_MESSAGE)); ImageList_AddIcon(hIconsList, LoadIconEx("overlay", FALSE)); ImageList_SetOverlayImage(hIconsList, 1, 1); }
int TreeList_AddIcon(HWND hwnd, HICON hIcon, int iOverlay) { HIMAGELIST hIml = ListView_GetImageList(hwnd, LVSIL_SMALL); int idx = ImageList_AddIcon(hIml, hIcon); g_ReleaseIcon(hIcon); if (iOverlay) ImageList_SetOverlayImage(hIml, idx, iOverlay); return idx; }
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); }
void LoadModuleIcons(MODULEINFO *mi) { HIMAGELIST hList = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 0); int overlayIcon = ImageList_AddIcon(hList, GetCachedIcon("chat_overlay")); ImageList_SetOverlayImage(hList, overlayIcon, 1); int index = ImageList_AddIcon(hList, Skin_LoadProtoIcon(mi->pszModule, ID_STATUS_ONLINE)); mi->hOnlineIcon = ImageList_GetIcon(hList, index, ILD_TRANSPARENT); mi->hOnlineTalkIcon = ImageList_GetIcon(hList, index, ILD_TRANSPARENT | INDEXTOOVERLAYMASK(1)); index = ImageList_AddIcon(hList, Skin_LoadProtoIcon(mi->pszModule, ID_STATUS_OFFLINE)); mi->hOfflineIcon = ImageList_GetIcon(hList, index, ILD_TRANSPARENT); mi->hOfflineTalkIcon = ImageList_GetIcon(hList, index, ILD_TRANSPARENT | INDEXTOOVERLAYMASK(1)); ImageList_Destroy(hList); }
void LoadIcons(void) { int i; for(i = 0; i < 20; i++) hIcons[i] = NULL; LoadLogIcons(); LoadMsgLogBitmaps(); hImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),IsWinVerXPPlus()? ILC_COLOR32 | ILC_MASK : ILC_COLOR16 | ILC_MASK,0,3); hIconsList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),IsWinVerXPPlus()? ILC_COLOR32 | ILC_MASK : ILC_COLOR16 | ILC_MASK,0,100); ImageList_AddIcon(hIconsList,LoadSkinnedIcon( SKINICON_EVENT_MESSAGE)); ImageList_AddIcon(hIconsList,LoadIconEx( "overlay", FALSE )); ImageList_SetOverlayImage(hIconsList, 1, 1); ImageList_AddIcon(hImageList,LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BLANK),IMAGE_ICON,0,0,0)); ImageList_AddIcon(hImageList,LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BLANK),IMAGE_ICON,0,0,0)); }
HIMAGELIST CTTSApp::InitImageList() ///////////////////////////////////////////////////////////////// { HIMAGELIST hListBmp; HBITMAP hBmp; hListBmp = ImageList_Create( CHARACTER_WIDTH, CHARACTER_HEIGHT, ILC_COLOR32 | ILC_MASK, 1, 0 ); if (hListBmp) { hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICFULL ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH2 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH3 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH4 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH5 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH6 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH7 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH8 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH9 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH10 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH11 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH12 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICMOUTH13 ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICEYESNAR ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); hBmp = LoadBitmap( m_hInst, MAKEINTRESOURCE( IDB_MICEYESCLO ) ); ImageList_AddMasked( hListBmp, hBmp, 0xff00ff ); DeleteObject( hBmp ); ImageList_SetOverlayImage( hListBmp, 1, 1 ); ImageList_SetOverlayImage( hListBmp, 2, 2 ); ImageList_SetOverlayImage( hListBmp, 3, 3 ); ImageList_SetOverlayImage( hListBmp, 4, 4 ); ImageList_SetOverlayImage( hListBmp, 5, 5 ); ImageList_SetOverlayImage( hListBmp, 6, 6 ); ImageList_SetOverlayImage( hListBmp, 7, 7 ); ImageList_SetOverlayImage( hListBmp, 8, 8 ); ImageList_SetOverlayImage( hListBmp, 9, 9 ); ImageList_SetOverlayImage( hListBmp, 10, 10 ); ImageList_SetOverlayImage( hListBmp, 11, 11 ); ImageList_SetOverlayImage( hListBmp, 12, 12 ); ImageList_SetOverlayImage( hListBmp, 13, 13 ); ImageList_SetOverlayImage( hListBmp, 14, WEYESNAR ); ImageList_SetOverlayImage( hListBmp, 15, WEYESCLO ); } return hListBmp; }
BOOL _ShellImageListInit(int cxIcon, int cyIcon, int cxSmIcon, int cySmIcon, UINT flags, BOOL fRestore) { int i; TCHAR szModule[MAX_PATH]; HKEY hkeyIcons; ASSERTCRITICAL; if (himlIcons == NULL) { himlIcons = ImageList_Create(cxIcon, cyIcon, ILC_MASK|ILC_SHARED|flags, 0, 32); } else { ImageList_Remove(himlIcons, -1); ImageList_SetIconSize(himlIcons, cxIcon, cyIcon); } if (himlIcons == NULL) { return FALSE; } if (himlIconsSmall == NULL) { himlIconsSmall = ImageList_Create(cxSmIcon, cySmIcon, ILC_MASK|ILC_SHARED|flags, 0, 32); } else { ImageList_Remove(himlIconsSmall, -1); ImageList_SetIconSize(himlIconsSmall, cxSmIcon, cySmIcon); } if (himlIconsSmall == NULL) { ImageList_Destroy(himlIcons); himlIcons = NULL; return FALSE; } // set the bk colors to COLOR_WINDOW since this is what will // be used most of the time as the bk for these lists (cabinet, tray) // this avoids having to do ROPs when drawing, thus making it fast ImageList_SetBkColor(himlIcons, GetSysColor(COLOR_WINDOW)); ImageList_SetBkColor(himlIconsSmall, GetSysColor(COLOR_WINDOW)); GetModuleFileName(HINST_THISDLL, szModule, ARRAYSIZE(szModule)); // WARNING: this code assumes that these icons are the first in // our RC file and are in this order and these indexes correspond // to the II_ constants in shell.h. hkeyIcons = SHGetExplorerSubHkey(HKEY_LOCAL_MACHINE, g_szShellIcons, FALSE); for (i = 0; i < ARRAYSIZE(c_SystemImageListIndexes); i++) { HICON hIcon=NULL; HICON hSmallIcon=NULL; int iIndex; // // Load all of the icons with fRestore == TRUE, or only the overlays // if fRestore == FALSE. // if (fRestore || (i >= II_OVERLAYFIRST && i <= II_OVERLAYLAST)) { // // check to see if icon is overridden in the registry // if (hkeyIcons) { TCHAR val[10]; TCHAR ach[MAX_PATH]; DWORD cb=MAX_PATH; int iIcon; wsprintf(val, g_szD, i); ach[0] = 0; RegQueryValueEx(hkeyIcons, val, NULL, NULL, (LPBYTE)ach, &cb); if (ach[0]) { HICON hIcons[2] = {0, 0}; iIcon = PathParseIconLocation(ach); ExtractIcons(ach, iIcon, MAKELONG(g_cxIcon,g_cxSmIcon), MAKELONG(g_cyIcon,g_cySmIcon), hIcons, NULL, 2, g_lrFlags); hIcon = hIcons[0]; hSmallIcon = hIcons[1]; if (hIcon) { DebugMsg(DM_TRACE, TEXT("ShellImageListInit: Got default icon #%d from registry: %s,%d"), i, ach, iIcon); } } } if (hIcon == NULL) { hIcon = LoadImage(HINST_THISDLL, MAKEINTRESOURCE(c_SystemImageListIndexes[i]), IMAGE_ICON, cxIcon, cyIcon, g_lrFlags); hSmallIcon = LoadImage(HINST_THISDLL, MAKEINTRESOURCE(c_SystemImageListIndexes[i]), IMAGE_ICON, cxSmIcon, cySmIcon, g_lrFlags); } if (hIcon) { iIndex = SHAddIconsToCache(hIcon, hSmallIcon, szModule, i, 0); Assert(iIndex == i); // assume index if (i >= II_OVERLAYFIRST && i <= II_OVERLAYLAST) { ImageList_SetOverlayImage(himlIcons, iIndex, i - II_OVERLAYFIRST + 1); ImageList_SetOverlayImage(himlIconsSmall, iIndex, i - II_OVERLAYFIRST + 1); } } } } if (hkeyIcons) RegCloseKey(hkeyIcons); return TRUE; }