Skinning Windows

Hey guys!

I was thinking about writing my own skinning program, similar to WindowBlinds but probably free. To me it makes sense to figure out how Windows XP skins in the first place. Is it like OS X, which I'm used to, which uses a lot of picture files, or does it use some sort of resource file?

BTW I'd like to make it work with Windows 2000 as well if possible.

Thanks!

#117776

All window skinners (including the themes service) hook into the windows classic interface and replace drawing with bitmaps. Then there is a file to determine whether those bitmaps tile, stretch, and the margins etc.

Of course there is a lot more to it but that's the basic idea.

#117781

Hmmm ok... If it were just moving/replacing picture files (like in OS X) I could build an app in REALBasic that could do the trick. Do you think windows skinning is too much for REALBasic?

#117782

Well it shoudln't matter what programming language you use as long as you can hook into windows and replace the native drawing with your own I think.

The only truly native interface in windows is classic, which uses no bitmaps. It is drawn using a color and then stuff out of font files (like marlett.ttf).

#117783

Ok, cool - does anybody have some links to help me get started on this? I googled it but got a whole lot of nothing...

#117786

Well?

Thanks!

#118073

I dont think your the man for this job kiddo

#118080

Originally posted by lostspyder@Feb 22 2004, 04:56 PM

I dont think your the man for this job kiddo

True that buddy... ;)

#118093

i think it took more than 1 person to make windowblinds, i think you would need some help if you were seriously gonna do this...

-Lou

#118110

Cut him some slack, damn.

If he wants to try let him.

Power to the rookie ( no offence I'm one to.)

#118111

Originally posted by iindigo@Feb 22 2004, 04:17 AM

Hmmm ok... If it were just moving/replacing picture files (like in OS X) I could build an app in REALBasic that could do the trick. Do you think windows skinning is too much for REALBasic?

I think this is far too much for REALBasic.

You'd probably be best doing this in C/C++(/C# if you knew it intricately).

Aside from those three, it would probably be difficult to integrate tightly with Windows, difficult to make run at any sensible level of performance, and difficult to ensure compatibility with other machines.

If it were me, I'd chose C++ (or C#, but that's just because I've got a point to prove ;)).

#118334

Oh, ok. Unfortunatly REALBasic is the only language I know, so I guess the project is canceled. :(

#118430

You want to know about HOOKS, Subclassing, WindowClasses, Device context and more Windows specific stuff.

C (or C++ if you need the standard library and the OOP) is prolly is the best for this (not to bash C#, Stevie, but you have to admit that Win32 API stuff is at least not fine code to do (all those pointers, unmanaged code,etc...) ).

Besides the windows stuff you need to be into graphical routines and formats too.

Maybe you want to do important and often called graphic routines in assembler, but you can do it in C too.

Allright, you can try to do it, but why do it when there is an application out there that does it already? Personally, I think WindowBlinds is worth its money, because - as you can see - it takes a lot of knowledge and efforts to make such a thing.

edit: I just read that you canceled it, because you only know REALBasic. Why not try to learn a new language?

#118443

Pah, this has to be the most fruitless thread I have ever seen.

#118446

Originally posted by Sid@Feb 23 2004, 09:50 AM

Pah, this has to be the most fruitless thread I have ever seen.

Better?....

simmons.jpgfruit.jpg

#118455

shows that you never cleared high school..... <_

#118460

Originally posted by Sid@Feb 23 2004, 10:50 AM

Pah, this has to be the most fruitless thread I have ever seen.

maybe you didn't notice iindigo's avatar then. :6

aww ); someone else beat me to the punch.

#118461

Originally posted by Deleted@Feb 23 2004, 11:09 AM

maybe you didn't notice iindigo's avatar then.  :6

I just noticed that... :blink:

#118462

Originally posted by AndreasV@Feb 23 2004, 03:43 PM

[...]

C (or C++ if you need the standard library and the OOP) is prolly is the best for this (not to bash C#, Stevie, but you have to admit that Win32 API stuff is at least not fine code to do (all those pointers, unmanaged code,etc...) ).

[...]

I agree that it's A Bugger™ to do, but it can be done, and if you really know C# and C++ well, a combination of the two would be really really fast and stable...

I do, however, admit that C++, in this case, would be the better option. Come Longhorn, though, and C# will be the way to go ;)

#118487