active desktop like drawing

Everything else that doesn't fall into one of the other PB categories.
Dreglor
Enthusiast
Enthusiast
Posts: 759
Joined: Sat Aug 02, 2003 11:22 pm
Location: OR, USA

active desktop like drawing

Post by Dreglor »

i been wondering how you draw drectly on to the wallpaper like some programs
take for example ZMatrix
it draws on the wallpaper area with out messing around with the icons or anything
is there an api or somthing i can tap into to do this?
~Dreglor
fweil
Enthusiast
Enthusiast
Posts: 725
Joined: Thu Apr 22, 2004 5:56 pm
Location: France
Contact:

Post by fweil »

Does ZMatrix use screen mode ? If so use DrawingBufffer() and DrawingBufferpitch () ...

If not I don't know today !

KRgrds
My avatar is a small copy of the 4x1.8m image I created and exposed at 'Le salon international du meuble à Paris' january 2004 in Matt Sindall's 'Shades' designers exhibition. The original laminated print was designed using a 150 dpi printout.
Dreglor
Enthusiast
Enthusiast
Posts: 759
Joined: Sat Aug 02, 2003 11:22 pm
Location: OR, USA

Post by Dreglor »

it proably an api to get the memory address then that way the problem is that i have no clue what api...
~Dreglor
User avatar
GedB
Addict
Addict
Posts: 1313
Joined: Fri May 16, 2003 3:47 pm
Location: England
Contact:

Post by GedB »

The source for ZMatrix is available on SourceForge:

http://cvs.sourceforge.net/viewcvs.py/z ... iew=markup

It's all COM stuff, though. This looks to be significant:

Code: Select all


	//Find the desktop window classes
	ghProgman = FindWindow(_TEXT("Progman"), _TEXT("Program Manager"));
	if(ghProgman != NULL)
	{
		ghShellDLL = FindWindowEx(ghProgman, 0, _TEXT("SHELLDLL_DefView"), NULL);
		ghSysListView = FindWindowEx(ghShellDLL,0,_TEXT("SysListView32"),NULL);
	}
	else
	{
		ghProgman = FindWindow(_TEXT("DesktopBackgroundClass"), NULL);

		if(ghProgman != NULL)
		{
			ghShellDLL = FindWindowEx(ghProgman, 0, _TEXT("DeskFolder"), NULL);
			ghSysListView = FindWindowEx(ghShellDLL,0,_TEXT("SysListView32"),NULL);
			LiteStepMode = true;
		}
		else
		{
			ghShellDLL = NULL;
			ghSysListView = NULL;
		}
	}

User avatar
GedB
Addict
Addict
Posts: 1313
Joined: Fri May 16, 2003 3:47 pm
Location: England
Contact:

Post by GedB »

This bit too:

Code: Select all


	case(WM_NCPAINT):
		{
			//return DefWindowProc(hWnd,message,wParam,lParam);
			if(MatrixObject)
			{
				HDC hdc;
				hdc = GetDC(hWnd);
				SelectClipRgn(hdc,ValidRGN);

				SelectObject(MatrixObject->GetBackDC(),MatrixObject->GetBackBitmap());
				BitBlt(hdc,gscreenLeft,gscreenTop,gscreenWidth,gscreenHeight,MatrixObject->GetBackDC(),0,0,SRCCOPY);
//OutputDebugString(_T("NCPainting\n"));

				ReleaseDC(hWnd, hdc);
			}
			return 0;

		}
		break;
Post Reply