void SetDesktopIconTextBk(int enable) //---------------------------------------------------+++--> { COLORREF col; HWND hwnd; hwnd = FindWindow("Progman", "Program Manager"); if(!hwnd) return; hwnd = GetWindow(hwnd, GW_CHILD); hwnd = GetWindow(hwnd, GW_CHILD); while(hwnd) { char s[80]; GetClassName(hwnd, s, 80); if(strcmp(s, "SysListView32") == 0) break; hwnd = GetWindow(hwnd, GW_HWNDNEXT); } if(!hwnd) return; if(enable) { col = CLR_NONE; } else { if(ListView_GetTextBkColor(hwnd) != CLR_NONE) return; col = GetSysColor(COLOR_DESKTOP); } ListView_SetTextBkColor(hwnd, col); ListView_RedrawItems(hwnd, 0, ListView_GetItemCount(hwnd)); hwnd = GetParent(hwnd); hwnd = GetWindow(hwnd, GW_CHILD); while(hwnd) { InvalidateRect(hwnd, NULL, TRUE); hwnd = GetWindow(hwnd, GW_HWNDNEXT); } }
LRESULT CFileListView::OnCustomDraw(LPNMLVCUSTOMDRAW pnmlvcd) { switch (pnmlvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: return CDRF_NOTIFYITEMDRAW; case CDDS_ITEMPREPAINT: return CDRF_NOTIFYSUBITEMDRAW; case CDDS_ITEMPREPAINT | CDDS_SUBITEM: pnmlvcd->clrText=ListView_GetTextColor(m_hwnd); pnmlvcd->clrTextBk=ListView_GetTextBkColor(m_hwnd); if (m_ColumnList[pnmlvcd->iSubItem]->GetID()==COLUMN_RESULT) { CFileListItem *pItem= reinterpret_cast<CFileListItem*>(pnmlvcd->nmcd.lItemlParam); const REC_FILE_INFO *pRecFileInfo=pItem->GetRecFileInfo(); COLORREF BackColor; if ((pRecFileInfo->recStatus & (REC_STATUS_ERR_WAKE | REC_STATUS_ERR_OPEN | REC_STATUS_ERR_FIND))!=0) { BackColor=m_ColorList[COLOR_ERROR]; } else { break; } if (RGBIntensity(BackColor)<160) pnmlvcd->clrText=RGB(255,255,255); else pnmlvcd->clrText=RGB(0,0,0); pnmlvcd->clrTextBk=BackColor; } break; } return 0; }
static void WallpaperChange(vout_display_t *vd, bool use_wallpaper) { vout_display_sys_t *sys = vd->sys; if (!sys->use_wallpaper == !use_wallpaper) return; HWND hwnd = FindWindow(_T("Progman"), NULL); if (hwnd) hwnd = FindWindowEx(hwnd, NULL, _T("SHELLDLL_DefView"), NULL); if (hwnd) hwnd = FindWindowEx(hwnd, NULL, _T("SysListView32"), NULL); if (!hwnd) { msg_Warn(vd, "couldn't find \"SysListView32\" window, " "wallpaper mode not supported"); return; } msg_Dbg(vd, "wallpaper mode %s", use_wallpaper ? "enabled" : "disabled"); sys->use_wallpaper = use_wallpaper; if (sys->use_wallpaper) { sys->color_bkg = ListView_GetBkColor(hwnd); sys->color_bkgtxt = ListView_GetTextBkColor(hwnd); ListView_SetBkColor(hwnd, sys->i_rgb_colorkey); ListView_SetTextBkColor(hwnd, sys->i_rgb_colorkey); } else { ListView_SetBkColor(hwnd, sys->color_bkg); ListView_SetTextBkColor(hwnd, sys->color_bkgtxt); } /* Update desktop */ InvalidateRect(hwnd, NULL, TRUE); UpdateWindow(hwnd); if (sys->use_overlay) DirectXUpdateOverlay(vd, NULL); }
LRESULT CReserveListView::OnCustomDraw(LPNMLVCUSTOMDRAW pnmlvcd) { switch (pnmlvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: return CDRF_NOTIFYITEMDRAW; case CDDS_ITEMPREPAINT: return CDRF_NOTIFYSUBITEMDRAW; case CDDS_ITEMPREPAINT | CDDS_SUBITEM: pnmlvcd->clrText=ListView_GetTextColor(m_hwnd); pnmlvcd->clrTextBk=ListView_GetTextBkColor(m_hwnd); if (m_ColumnList[pnmlvcd->iSubItem]->GetID()==COLUMN_STATUS) { const CReserveListItem *pItem= reinterpret_cast<const CReserveListItem*>(pnmlvcd->nmcd.lItemlParam); const RESERVE_DATA *pReserveData=pItem->GetReserveData(); COLORREF BackColor; if (pReserveData->recSetting.recMode==RECMODE_NO) { BackColor=m_ColorList[COLOR_DISABLED]; } else if (pReserveData->overlapMode==1) { BackColor=m_ColorList[COLOR_CONFLICT]; } else if (pReserveData->overlapMode==2) { BackColor=m_ColorList[COLOR_NOTUNER]; } else { break; } if (RGBIntensity(BackColor)<160) pnmlvcd->clrText=RGB(255,255,255); else pnmlvcd->clrText=RGB(0,0,0); pnmlvcd->clrTextBk=BackColor; } break; } return 0; }
/*-------------------------------------------------- start customizing desktop icons ----------------------------------------------------*/ void SetDesktopIcons(void) { LONG s; //BOOL c; if(!GetMyRegLong(NULL, "DeskTopIcon", FALSE)) { EndDesktopIcons(); return; } GetDesktopIcons(); if(hwndDesktop) { // small icon s = GetWindowLong(hwndDesktop, GWL_STYLE); if((s & LVS_SMALLICON) == 0) { SetWindowLong(hwndDesktop, GWL_STYLE, s | LVS_SMALLICON); } #if 0 // transparent c = (ListView_GetTextBkColor(hwndDesktop) == CLR_NONE); if(GetMyRegLong(NULL, "TransDeskTopIconBK", FALSE)) { if(!c) DesktopIconsTransparentSetReset(TRUE); } else { if(c) DesktopIconsTransparentSetReset(FALSE); } #endif } }