示例#1
0
文件: main.c 项目: andrejtm/T-Clock
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);
	}
}
示例#2
0
	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;
	}
示例#3
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);
}
示例#4
0
	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;
	}
示例#5
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
	}
}