tags:

views:

577

answers:

2

Hi All,

I have seen some cool applications with great looking skins. I'm new to MFC and I want to create an application with the capability of changing skins. How is it done in MFC? I've checked some tutorials but are a bit outdated. Thanks...

+1  A: 

Just a note. The concept of UI skinning is a general software design task (basically a plugin concept) and is not (to my knowledge) explicitly supported as a service by any language or framework like MFC. I.e. there's no "MFC-way" of doing skins, and no ".NET-way" either. But you can use either of these to design skinning support.

That said, some languages or frameworks might make it easier to implement skinning support than others. I would generally recommend C#/.NET for UI coding, but large portions of designing plugin/skin support is about general code mechanisms and interfaces, and there the question of language/framework is rather moot. There are also ready frameworks for many languages that does this for you, if you're not interested in the exercise of writing it yourself.

Some links that could be useful:

Plugin concept (note the list of plugin frameworks for some languages at the bottom)

Facade design pattern

Mediator design pattern

General info about skins

sharkin
I've seen samples using an XML file but I'm not sure how mfc uses the file to skin the application.
Owen
That's my point. MFC doesn't do that out of the box. You have to write code to understand the XML file. The XML file is also probably different for any kind of application.
sharkin
+1  A: 
eed3si9n
There are cool COMs and ActiveX from the web as well like skincrafter but is also gonna cost some money. I'm not sure what XULRunner is gonna offer thought... I'll go check on it...
Owen
There are cool COMs and ActiveX from the web as well like skincrafter but is also gonna cost some money. I'm not sure what XULRunner is gonna offer though... I'll go check on it...
Owen