Exontrol.ExSkin - Information, Features

ExSkin

Exontrol's ExSkin is an ActiveX control that enables you to change the visual appearance of your project's forms, providing you with the skin (or look&feel) support. Now you can do: any kind of window captions, frames, client and non-client areas and more. The control provides a WYSWYG Skin Builder that helps you to create new skins. Simple place the control on the form, and load a skin and your form's appearance is changed. So, it is possible now to make your program look like any program from MacOS, BeOS, Unix, and create your Winamp-like user interface. Exontrol's ExSkin creates fully interactive user interfaces, allowing end users to easily modify the appearance of applications, as they're using them.

Features include:

  • Simple to use
  • Non rectangular windows support
  • WYSYWG Skin Builder included
  • Ability to save files as compressed or uncompressed formats
  • Ability to assign a skin file to MDI windows and frames as well
  • Ability to load multiple pictures in a single skin file
  • Transparent colors support
  • Ability to load skin files from BASE64 encoded strings
  • Ability to assign HTML text to the form's caption
  • Ability to display an image on the form's caption a BASE64 encoded string
  • Ability to specify the colors for active or inactive state
  • Ability to define coordinates of skin objects using arithmetic expressions including % sign
  • Ability to load skins at runtime, as well as changing the skin for any non-top window

® ExSkin is a trademark of Exontrol. All Rights Reserved.


Exontrol - Support

How to get support?

To keep your business applications running, you need support you can count on.

Here are few hints what to do when you're stuck on your programming:

  • Check out the samples - they are here to provide some quick info on how things should be done
  • Check out the how-to questions using the eXHelper tool
  • Check out the help - includes documentation for each method, property or event
  • Check out if you have the latest version, and if you don't have it send an update request here.
  • Submit your problem(question) here.

Don't forget that you can contact our development team if you have ideas or requests for new components, by sending us an e-mail at support@exontrol.com ( please include the name of the product in the subject, ex: exgrid ) . We're sure our team of developers will try to find a way to make you happy - and us too, since we helped.

Regards,
Exontrol Development Team

https://www.exontrol.com


ExSkinBuilder object
Tip The /COM object can be placed on a HTML page (with usage of the HTML object tag: <object classid="clsid:...">) using the class identifier: {69278957-DC92-40F0-8886-C5F5589A7803}. The object's program identifier is: "Exontrol.ExSkinBuilder". The /COM object module is: "ExSkin.dll"
The Exontrol's skin builder helps you to create new skin files for your projects. Use the Exontrol's ExSkin component to apply skins to your forms ( to change the form's visual appearance. Just simple place a ExSkinForm component on your form and choose the 'Load Skin' item from its context menu. Use the Load method to assign new skin on the fly. Use the Attach method to change the skin for any window in your application.
  • How to run the skin builder?
  • How to create a new skin file?
  • How to assign a skin file to my form?

Name | Description
File | Loads a skin file.


property File

property ExSkinBuilder.File as String
Loads a skin file.

Type | Description
String | A string expression that indicates the path to the skin file ( *.esk) , a string expression that holds a skin file in BASE64 encoded format. the eximages tool to save your skin files as base64 encoded format
Use the File property to load a skin file to your builder, by code. The following sample shows how to load a skin file when the form's builder is running:

Private Sub Form_Load()
    Dim strFile As String
    If (Len(Command) <> 0) Then
        strFile = Mid(Command, 2, Len(Command) - 2)
        If (Len(strFile) = 0) Then
            MsgBox "Usage: builder.exe ", vbInformation
            Exit Sub
        End If
    End If
    If Len(strFile) > 0 Then
        ExSkinBuilder1.File = strFile
        Else
            Dim s As String
            s = "gBFLBTJYCAEHhEJAABhABVoYg6AABACAxWgKBADQKAAyDQKkEQGGQbRjhEAIGglg4JYjjKKxSgmHYDRTFMZwGA0EwcAAZBpEWR5JiuCQ1DAJMSjMAkRxtGyPZQhGQZXgOJ4sSpQAigFBIYhtE6YJikMDZbj2OoPUzAdCQG78EyrDahKCqMAKGoiMZbRKDVQgARMRj3BIFLDrOpwAqyE5ZR5QMrzDT0XQ2BixQgkMTYJriIJOTZcEL3FAdEwqGgCcAhEC4JIWCQ9QiddhyFIcfyKGIcYpGGqxRDSFQyZRAd5XfDZCQTDKBShtKptMpicZ2ShKWaQbadBxGCKxSShHRoDKOCRParV36sCzHMJJXTJcRgfYYLZ3BIjIRKCw8KhNi+IRhm6OgQAWJh7iMABTCAYx8h0Oo3kWFpdGsYwhhSVg3mGChImSMA9kQDBFkGNpwm2fR/l4FppjUcoWgUOAXgAUAwmGZBPFWNhpFsDJZhQeYcAwGIUG2Xx2kOJAlGIQJEkeXRsFuHRmA2MB6B+eIFBsdxfAQbAhoMAJVlQdRAAeHQqHYWxVgGCxIkQCB0AAHISngHQ3EmWYkhwLQMkMNh9moewSDgXglAABRUCWcgATiJgGGkAAFi2eYNiICB5kmCIkHQDQXGMJQJCUAwGlCEYBAkDYijcVguHGVZ1BYEBtlYOR4AADhmK6SIGiUNJ5nwcYehQehEEaYwknUOROF2NJaEsSZDBCRA3EyUw2HAMR2l6dBVm0AAkjAZQJAeJh"
            s = s + "WCqBIhiiCYOgqHxAAkGQVHAEhECQbRCEGWhVgCGZZkCYZaGUVg4hISwHCoShWBwa4lGaPYcFGYwUgwFBYmMWoFAODggFqGROioFBamGfRtieRYOiWL4AAqhYTmWFQ5DwQJDAQVAwiPaRBDGNgtiCFQ2AIFgwj4Sh0BCF5aFCCwilmXhVgoX5rB4ABUhYN5ShAQhXkQDoUjmbQlg6VRCG0eYqGlmgbEEGhFl0WZ+kITxmHkXpuEiWoJB4JIykABppAMbwuguJhQIge54P4bYYD4DxNiENAlFuNAcmQDBLiyJxQAMGZAC2XBzBiRoymwehqE2LwkFYGYwFAMZ5KKMoHAqNBXAMAJKD4DQDASMAzA4Mo9AEMZLiidhRFWNJdkqRQDkSAAMFMFeUokaQYkcEYwGkHQGFCOBiBsRwEFSFpJkAAQIE2WZRjmkIKBCERmHIUxBgQaBgloNR1F8epPjeG8Yw/RfCfHGGgZwMwGjDBQMAFwiRhBQEYBoQowgjgZGOHEXgfwSjIHkJwQ4LRkjyH4K8GIzR5hcHeDMZ48xOgHB6NAegnQPhNGiHUDgeA4AZESFwMAjAMwTCuFYFoCQBAgGsDABYQxQDaBoO8To7h/jfhyPcP44R8ArDRAyJIeBjAwAUKIEAegYiKCEFAco3AHjjDwNIIgDwBiRAwD4BwxAwD6B2PsYYuQNA/AeB8D4yx5B8G+E8aI9R+D/DeNUe4fRPh/HKPgfwnxDjtHyP4f4rx4j9H+F8d48gPAfAQI0P"
            s = s + "Y7wwA5TgOADQwxMBiAWI8IAJQChAEAA6IoMwChhEYCsQg4BzAbCGFsYAgwngQGsLwK4AAPDDDwGsBowQ6ArEQDgFwJgiBIEGBUIQcAlgLECFQFIRgMC3AsCMFgXwFiRE4DAIo6BngYDEPoDoCxwigBiCEegQBDjxAMCIIgOBGgQFEEQIoiQYgeBKEQbAmQJjiC4FERI0QlAoCKDgVoFQxDEConAdAXxijBExOocAxwLhCGwF4BQ8QqArEKAgTYEwxA0CIAgFALgMhCFAEwOwQBmAxliJwDYwwpi8EGJEdszRYj+A4KAYAfg4BCB4EAA4oQpAmGIKgYAFghC0DOIwEIegbAGDAMcDYowiBmAcAEVQNADgYGuBoIYkA2ANCCMgGwZB6CgA4KMNAahlA5CWCkEoNBUiVAkK4KYyhshVBWKUMgrxLBSGMFoJYCQ2gsHKLwWolwJDuC6EsbIcwUjGFhL0MYXA5CNFiK0FFohxAaHGEwN4DQYicBqIYLAxwMCiHQFoRQsQeAmBACAMQCgAgqAQIIXFNBxjzF8I8QQCAfAHEDcAYY9AVgSGGAi3g8RUAxGMBQSYGRBiImYBkGQNBTi4HGBsAYTgnBPGSDsE45QEDUEuJIfwgRoBZD6EEVAJaohUBMIYKAiQ8gwDMBiXogwuBzEaMEWIRQ0C4G6BsCgSA2BPFCKgGwhg8DLAwNERgUgEhhBEB0QYMAwAJEAOxPw9wGg4UoMQCAoR8A+EUCEFAIxCjIagNIGgXsHigBkO"
            s = s + "cUg9hJhTHMKEagOR7g/DIOUAIoAKA6EKNQZQGwphqEKE8VQVQdCmCiAEV4RBUClAsKMAYnhGhVGCLMK4qBwDiEmKMKAZBGBBDICkIoAJZgBFQCcAY0A1hLEmBQPggxQjQBwAYcIXATjEGoIoCrTgwgNHyJ0KAagSD4FQLYBQfAqB7AaFIUoFQoiqEsCoYwVQdgbDEOwOguRVDVDEK0aoqhdA3DUP0TAqxqh4DkqUVlXw0DJAsNAXlUAVDYAcMEVYuhOARHaL8aYkQlAxEKMAWYGhRggDCNccInQwAsA6IEW4VgNB/CoKsPIUgWj9GCJ8a4DhwBcCWIUOIbgijHFyFcDQ5guCbE2HIdwdRoi6AsPIKoWQdAnDKGgZqPgbhuGaNkRIigajtABsgQQnAogHEMLYcgAw8BtDOI8BgthFChCICcQ0WQLhDC4GURgWw2huBYCUXQtwa2uC2OuRo7hLAAF0HgBYAgwAcAaIAeAPgCi4iCGEKoexXhWFYLUbQuxbhyGaFkRYOgairBAMUCoEgQA0EKJAUlNRcBSE4EMfgaRGBhEEDYIwaBkC+HmNYfoXxNj3D8G4Bo/hgg4GeAS0oFRGjxFMDgYw1wdgGCiBwD4RR4COAmMgLAVh2jWBUMgF4RRkCQAgCEdgKQgDwHYBwCoGR8UWEYFABoigiA3EMJAZov5wguC2JwMYQAYjODCMcPIjwOhmC4MUTIrhSbRGqGcEAXYPCFBmIUDgG/ghmCsHEIAGxhD4CyAwcIaAVAcB"
            s = s + "CKgGQBgLAoGKFMHYLhxVFDcO8dwYBmCZE/3kXoHRNO1BihjhcAdgbAqhdgXhOAZg/AJgOAxgyA1BGBQg/AXBZAoA9gFAAB6gThKgtEShDgGBLhoBdBXgXg0BMgghRg6BHBHhrANBngsgwAeuIAYBDA3BkBNAzguhshGByhOgChEBSgJh8hwAWBmhoAAgUhThoBphlg8BfgtA1gOhOhZg7BDBahsh8hTAwAwBug4hNg1BzAJBrhdAxg2h0hYhVAZgDAABeAJAZhIAVheB2hHgUgbAnBlhoBtgjg0h3Buhshdh7BLAEhrB8B/glg2hWhcheh1B7BvBuANhFg5A3A2hIgfB7gqhAhvANhdg8B4AvAEhgh4hzA1BtBthpgQFtg8hOAbhrBwhuAwh5g5BMgAhpAbhjBugMBPhdALhAh4hvAGwBAjBHhvA9ArhDB3hHAOhIgcBHB+BxOCBFh4hNAWhjB4g+B7hyAOBnhHh5gvAhhmh6hDgHheARBEAlBEB8BwBDA8g3gNBPg+A5hNg5gnA4hog9AjgjhjB+B1BoB5hnA+mOADgghyh+gHhMBkhXBGhqh9AngsB0guC1AGBPBOhnh9BHgMB0AhgnhRA6hfBZhsh9gbg0h1hOBOA2LmA9hsAdBIBsBzANAPhVg7BHBahuh9hbg8hpAOg7hXh6gHBxhuB4g3g8B2guh1hgg8AthChvgdg/g/B2AugnhZA6gsgbhwgeBDhBh5AvOAg8BHBPhoAeAvg5B1BOhphjh8gfgRh"
            s = s + "ygegDg0B5BuhhhmB8AGhMhzh+gjhPB6gug1hoh8BXAuhzBeA3hOB6AfBXhqB9gehsh1g+BjhXh6BthXhtB9hvg0h3h+hfg2B2hvAvhYB9hXgbhwA+h7hbS0AXgZB9hHhFhsB9gXhlB8APgZh0gwAPhOhvh/AfhTh9A/g3h1B+glhLh6h+gXhsh7hPg5h3g/Anhmg4g/gDhjB7S0h5h/Avhdh8hfgnhoB4hvhfh9A/B3hMh+A+AzBChZAPh3Bjh/htgRB/hHpLQjgAA0gsB/gHgwB/goACgAgYABgAg4AEgAhIAKgAhYAQBKBIAGB7g1gBgBAYAOgBB4AWgBgYAPgBg4AYgABXhCB0hXgJB7gXhyB5hIAagBhYAmgCBYAogBhIApBLBoATB+AoAVgCgoAwgCB4AxgCg4A00VAtB+g2AvgDBYAygDg4A6gDhYAzHvA3gAgIA8gDh4BDgEBYA+n7BAgBh3BegCAXhPB/gXgOgEB4BQgEBIBRgEgIAXgEAYBPgFAoBYgFBIBTgFg3h+gFBoAkgFgYBcgFgoBggGA4ALB9BwhgANhHAaBKAEh3AIhgBKUVBsgGw8gGh4BygHAYB0gHAIB2gHA4B3gHBYB4gHg4B6gHhYB5gHh4B8gIAIB+iK0zA4gGgIAogIgIBYgJgIB4gKjvgMgHhlBeBSAAhLAKBwgZAJBABnAFBxhTAOgHglgGgkgaAHAgA9CNASAEhgAiAJAYgigKAYgjgKMIkOgngKg4gmtUAqgKhYitAog"
            s = s + "mgLA4gxk3AygLBYg4gLB4g6gLBog8gLgYg9gLg4g+khhAgMTmgMBYhCsQhEgKgYgxgKhohLgMgogsgMhogwgLgogqgJAVAhgJBAgUBhhR1kgYBngGv0hPBwBfADBQAVAIBQBKACAggWAFAgAnAJBgBUgOB4hmgOBYhqgOhYho2bhpgOh4hygPAYh0gPNqAPA4h3gPBYh4gPg4h6gPhYh5gPh4h8gQAIh+gQAZAEgQNhgQApAIgQBZAJgQB4hsgQhYhrgOg4hxgRAIhtgNBIgTgJBYgXgJgYgbgNhUgaAGAwA4CNAJVqgnAJgwBZACg5AiJbgcgSA5AngSBpAogSg5AqgShZApgSh5AsgTAJAugTAZA0gTA5A2gTApA4gTBZA5gTB5A6gTiggTh5A7gUAZA+gUApA2XDBX3IhHgSBZAygUBpAtgUhJAp3fBQgShJAUgNBohYAAAIgaB7gogcANAgBngJiTWYgrAKAgBdAChpBggWXugDA5BjgWB5BhgWgJBkgWg5BqgWhZBpgWh5BsgXAJBugXAZB0gXA5B2gXApB4wKB5gXB5B6gXhZB8gXh5B735hmgWBZB3ADAwghgYBJgCgWAJgDgXggAzgVA4gVgVBYhagGgHAvgVojAEAAVrhQXEBggoAGBQA1AKgZgcgZhgA4nWA1gaApgkgZhJglgaA5gmgagZgogag5gngahZgqgahpgsgah5gygbAZg0gbAJinA5gKgbgZBhALAAB4LiA9AIolgMggjvNAALAwg"
            s = s + "fANu7AKhgheAMBgg3ANhghFALBQhXALgggmYvB3AFAJgKgYB5gL4dg6gYg5g8gbhphAgcAphEgcNrgcgphMgchpjxAphUgdBpBlgdgJBjgaAJhugbA5gggYhogWgJgHBRgNg5gTgRgghSAHAABCACBwgcgNhwgvAGkQAfhwA9YvBqggA6AAALAKAHgggaK5A6AIgghKAKgghaAQggh6ASgghqAUghAaAVghA6AWghgaAYghkQYbYZBZgVALAgB1AEhAg8WVhiAKgQgAHugGAGBgBSAGBzgyAFBAA4ACBwBjAE1ogIBgByHug3AKBQgaAOBEgNAMBwgbAHhqAgAEAJgi5oAegkAaAigiBKAm1tAqgihKAuADgKAwgjAqA0gjBqA4gjgqA8AMAqA+gkAJgVgkA6AFggVGAgAKACghAKAFgfApAXgfBZgSB3ApBZAHBABIJbghYYA7ALBph6gmhgBCALBgBygnAaBzgnAqB0gnB6B2gngaB1gng6B4gnhKB6gnhagAgnh6gCj0AEgoAa09g6gG6wBcALAQBtAEAAqzAgBIAJhgBraAh3Vqg4AHhABQADgAgDAFZfAIAwBVADhQB0MWA1AGM/ACnW2UWZhAB/AHZoAMAwg2DmgfAIAaANgnBq2KhagPgpAagTgpBagXgpgagbgphagfgqAa6Whagn4mArgqhagvgrAagzgnhqBvgmh6B8gmAph0gVB4hcWSh4AEhJ5kmtALhAbDgAg9gtqugHBqhagthKhggth6h"
            s = s + "igtg6hjguAahkguB6hmgugahlguuEAuhKhqguhahwguh6hyguAggwgohQgpgVgwgvVoBKAKBQBwRQAtalBUALhQB/AFggvTBwBfnW8OAgBaAKa+MWB6WYg7AFBQA7ZagTbFBwAOJcY7hBgwBqhkgvBQBAgvB6ABgvgqh8gvhrAAgwgrAIgwgLAKgwhLAOgxALASgxBLAW13AagxhKhcgt8ZgtgKhr6ghVAOBwheANgqhRBJggB6MWAzAKgga+hAhBbFBOAMArBGAMA7BGg0gABMg0hLBOAHhLQvgLBPg1AbBUg1A7BWg1ArBYg1BbBZg1B7Bag1hbBcg1h7Bbg2AbBdAKAABma/ArZZBKAMhQgOAGBghQAIhwBnY2AXJmhnAJhwB0NzgiAHBwhsAKAwB3g3AwB1ANgQgWFSg0AHhQBaAHhwBZAEAKgcJbg1AJgglUgQgyAJgLBMg2BLBmg2gLBqdQhXH3lcBg3cgghuReAeAOhwgxAIhLgedyYrBwhkALBggZAMAAgRAHBLgEg4BgA9g4gL1xBLgO4qhLg7A7BHqchOgshhhTFchEBQVEbxhUAKbCAEGadfHDBwlEArhG18hH5EhMg8g7hOg8grhQg8hbhRg8h7hSg9BbhUg9B7hTg9gbhWg9grhYg9g7hSYxhabGhGWxhjdwgpAHhQ9ZBwB8AO4Xeehxczh/APAQgrg/Abhzg/AgB/AOi6AHhghdXDB0AKunA8gVchAgBucMa9BAgZ5Ehgg+Arhkg+BgB9A"
            s = s + "PAghCAKBAgIAFgQA7hBAQA7APBQhEAKBsAWe9AUhBBAhnALgQgeg/hsAAADg8AChABMAGAMgAgBg9hLhTY/hyAGgmGqAAhqP0G3hJBZAIBwBlRQAeAGBwBCAMengFAghLAIBABVhDhcA/hDhsBAhEA8BChEBcLxh8BEhEgMBG5HhMhEg8BOhEgsBQhEhcBRhEh8BShEgQbrhgHfgA8hAAh0ALgAgTe7wFhgh3fHAsu6grhGBsBoAMgMBnhGBAhwfBKaWOA9gsA1AHAjhNY2AuAJAcBAhFB8BZhFg8BdhFhAHww0YYSygzwJUgQDukAw20a+HEEUw50cuHeh1AqUSIUqh2yIgUoVAEls5FmERIkHs/gWREkHDWPRU7UgkyCMAeYGkEjAwAOoT6UwCmAgoFWlTyW0qmS6lhyYUseS+llyZUs2TSlnydUuOTylwyfUueT+l1ygUs4GkCEAVg8gUejFCigo4XkGhCcUgmVCkDwJA84UwFhCugooQIFFA9gYAHMClAhA2ISQEDyXUwuUemRC70yYXYF1CMg+AU0FiC2gwISekEC8GcuVRqXMFmCH00+Vmmzyu02+WGmDyaA0wcsshQFSCOgnjwYoF0AAClAwYUGMhShA0zUkFWCLgiQQJkTgFjoRgyVR6oAyg1G+h6pByhVIeiCpE0RVG+ScBDhLxoxSaYpAXEE8gbAEiSaDgJyaFoagHGE8AaAEbgcKEYgROEagRGA5ASIA4ALCEqgTCA5SVNoUylHoWgaGEdynC"
            s = s + "EbmCKEmT6G1fCbKk4SOBUGh5Kc2iBKgWiJKg2hOBsYRsBM6i8LwKBWBI4DwHAQAAJMoSkB0YTEBszjGBkQRyBYADoAkwBqBM+BwBgeB3KQ+j1KQ2j5KQuj9K8ej/JctRIf8aATIEFgfEEvAZIE9JMI4HxhLIGCBXg4R+ocrAXNsKAXMFeDBHssiBHoHwhagITSBcFwcic/GpAYDBhJ4ESAL8qQAIB/5sKEGAeMEtAZAE9gcDY2mOIkgibC8sj5Aksj7EMtB7EstD7FMtR5GkiAZFwGTBBQCyhMIhiMBoGhrGgFDBDAEhhDAETBBJ03mKEZgdIEyAcAE0RnHceE3CIDwAM8hzAeYtx9KMmwDL0OwBL0ej7L0mzSA0wCMAUwQAA0IC0oczgbFsal5PQGjhICpCeBYYTyBkYRbMAIRYqQlTALwBcwFwHhBXUwSocsIGjAoDABIwEAgKklTbOEvhANUvi7O4HyBMyCT4BwYSmo8upkyQYR1MQ4Ryo8tAYKE9pMI3YB3MEnAdMIHAlMInAtVsJyVMErLpA4syLDwGTIHY6TBCS7wWCowTcBwwTHIU4S7KILSSBcgRUBQADWAkABmlUxAIAEek6JwGR5FkyyYH8lSBJIEBAKkzA8MczBcMkzD8M0zQ8MszR8NEzScNUzCcL0zg8Lszh8L8zi8OUzjcOkzj8PUzw8OgFiXHwChAGoBBBEwEihBSjza1ewjhLKjy+BkmwcBgQT2Bo+w3LMXQjLI2w0ocpG3IxzjwBVEQ"
            s = s + "CQAh/CmBwXozxgCZGgB0Ao0BOgNGiB0Co0ROgcA2D1U4WwcjSF2DkaYHQajTE6D0agHQiiHG4MgDAtxHAYGCAoBaiH2hkG+CkHQGQkBqHSMcQgHxwjIA244XYQRhi7FCLUXY4RSASYyA4OoIQWBZEUBgCwjRCDcGuHga4igIAdF+NwHovRuB9cQJ0Yo3BejRG4P0YYzRejZGaP0bozRujhG6L0cYzQsCAAkoABYQBCAGDC94cIGFDjeA4OEfAHRQjEakNIDYgVhN4UeMkYgYRji/C4EsToQQBJVGcAgYIWAGjgEiIiRAhxujsAQB0eI3wuj5G+N4AI4AvAJHAN5DYXgMjhGCJUcQHgSjiE8C0RAFxJjbCAKAC4NRTLdCYBEVgJogCqA0CgMTKgwLpCKNkEIWgKuUA6OEaAHBdDYA2MwDU3RRPtDoA8IAwAFAAHeGgAISgGx/AuKAegCRgiMAeOAUAGBAD8ASN4XI6xvC7HWP4Yo7AfDJHYB4Zo7A/DPHYL6Lw3hsjdB8NsboXhvjuB8N0bgAXVhgFQBgMA/AFABBMAscAexFgACIA8QA0lwBkAoIEGkQBSJkHgl5t4AROPtDcBSl4ERgDkAWLgegEwwDKAQB4eACgODJG2N4dY7h/DzHeH4fQBg/D/HgD8A48BfgPHiD8C48RfgfHkD8E48hfgvHmDwZAFxKimAsBVoAoQQAOD+BgDE0jKCfGwMkCwEwQgqAkH0SQKhAjOA4EEX4yQQjGHKLkISMBBGFCkxU"
            s = s + "VBbU0hAC4BMb4LgLgAHYAkIIhAHi+GmOwYIix2hfGCPsXw0R+B/GGPwT4xR+C/t6P8aoeQQiNG6DUeQCQLiCAKH0Jo7xvD9GoisdQ4Azj2EAJEfovRhj/E8NYCABAAhJEYIAFAMRwCqHmJEEA1giAVEoIYUQIg4DOBGBMQ4iBGADGiDkdQJBYCFCCCAaAWB9CYGoEILAoQGDtEMBIbIzhuhsGWBsFwZhthdFQMkMQsBLgrDAdMf4OhPBPDOKkYg2g2jgHUHMXYXBXAnCGHkWg5Q2C1A4G0OwkwA0pBuJUZIBg5AQFaBwLQHAVDNFIEWNIlBgA9AmBgE4sgxgIHsE4MAnwWhHGEHMBQ4w5i5C6C4e4axmjWHuHgXwXhXi4AWP4BQ/RCDAHCHAPAbAnAjAuIcXQ2xWhWGWEUTw0heg8AkJYY4QghCgGsEIJYxgKgoBmFMKIgBaCXHSKkOYFhdhNEgMMJIoxojzHyNwdYZRaB/UiKwK4ixWjQHYHIHAaQqDKDqEEUwzwwAuCgEYcYEQyBwBODkSQBRkgiHAOEJ4JAtCcEQMsWYsQQh/DMO4CQuxvADGuH8Yo4R4j5F4L4R4JxVjPHWPQfYPR/DvEeLcc48B9B8oyI4eQ+wWjZBIHUQgYhaBuAiAoiYQASBVGkCALQDwlDiCIH4GwzBZgNFMEsLgBzHg3AaIIeAuAnBbCsMbHwWxZidF0DoCgdQShLByE0UYVByA2AaDUIA0gWgKCEHANoFRiChCgDgBAlRICcD+"
            s = s + "BQAYMgehdDOIMWQZQMCQCGNkBwRRICkDyBIJAkRSCZBkEsSYpBUhCCaJQMg+QlBVEqCUPITgsiVFKKkAgOwSiFHgO4HoDgEBRCgDUDwBBgC4Dx0cKQbA/AbCYGIZApxCCSHKC0JQNhnCTD4NsHQJxJiQG8DYbYFB9CBDYOgFAeMUDUCmMgdgOgnDjEwOP1IA0zA1GcEcBQKxFhMBEMwVgIgDhxFYGMCYBADg8VWAMGAcQJCpDUEoTQqRVAqF0J4VoqhVDqFkK8VgqwNDSFgK0VYOhvC1FcCsXQ6heiuDUNQLAXQIACh8FUCICBYjMDGCoZIUgSDNBeFoKgtRTg2CnC5DeCQA6COATB2DXA3BOBTCADdCgAtD2DSCFC4APDzAkDGAxBoCTCoDwepBmD0DgCeANC6BKAnCKBNCFA9BOCKCNA7DKD5CKAvCjBWXECvC8ACD9DABvD8ALMYAwB8APT9CwCsAjALDDCwDcBDAMDCCpAjCeAXDFBNCDCceaBcALbnC2Z+B8DrA4DOADCrAgAxBMACD+DjDKCyC6ASCBAnAUAbCsDjC6AOD7CtBHA4BtCpDsDaDGBSDsBYDdDGAzEnA/DQC0AdATBADRC0A9AfBFDSA0C9ArBNDSB0D9AzBQDTC1AdBTBTDVC1AtBjBCDOBxDbBYDiA3ByAjB9C9A4BiBDC2CNA4DNDjBwCbAmXpCzArC4C2D8C0CvArBKDDCgDkA4CPAjC0DrA8BOCjCgDvA6AOBTC4DnA5AiBDCwD"
            s = s + "lA4B4BeAfCGDiA4C+ArCNDiB4D+AzCQDjC5AeBTCTWcAuBjCVDmB5B+BrCdjRD+BvChDiA2BTCKCMA4DoDDCTB+A5B3DjCbA0A5COBDB8DeArAKCiCrBtDcAhDcC3C2DuBbBSDkC4AuASDTBgDOAyDMCbCjDFA7AOCvAbDIDxXBAzDLDzC8CvBDDND0B8D/BLDVD1A9B/BPDZD1C9CvBjDbD3C9DfAsDtgECdDYkfCMCIBcDXBOAhC+DvDtDuK4AEEBA"

            ExSkinBuilder1.File = s

    End If
End Sub


ExSkinForm object
Tip The /COM object can be placed on a HTML page (with usage of the HTML object tag: <object classid="clsid:...">) using the class identifier: {7E1B1206-DAD1-45D8-B991-42148ACB7C59}. The object's program identifier is: "Exontrol.SkinForm". The /COM object module is: "ExSkin.dll"
Exontrol's ExSkin is an ActiveX control that enables you to change the visual appearance of your project's forms, providing you with the skin (or look&feel) support. Now you can do: any kind of window captions, frames, client and non-client areas and more. The control provides a WYSWYG Skin Builder that helps you to create new skins. Simple place the control on the form, and load a skin and your form's appearance is changed. So, it is possible now to make your program look like any program from MacOS, BeOS, Unix, and create your Winamp-like user interface. By using skins, you can have your own style of resizable windows in your projects.
  • How to run the skin builder?
  • How to create a new skin file?
  • How to assign a skin file to my form?

The ExSkin supports the following properties and methods:

Name | Description
ActiveForeColor | Specifies the foreground color when window is active.
Attach | Attaches the skin to specified window.
FontTitle | Retrieves or sets the window title's font.
ImageTitle | Specifies the image being displayed in the window's title bar.
InactiveForeColor | Specifies the foreground color when window is inactive.
Load | Loads a skin file at runtime.
MinHeight | Specifies the minimum height that a form can be resized to.
MinWidth | Specifies the minimum width that a form can be resized to.
Refresh | Repaints the window.
Version | Retrieves the control's version.


property ActiveForeColor

property ExSkinForm.ActiveForeColor as Color
Specifies the foreground color when window is active.

Type | Description
Color | A color expression that indicates the foreground color of the form's caption in case it is active.
Use the ActiveForeColor, InactiveForeColor properties to specify the foreground color of the form's caption when it is activated or deactivated. Use the FontTitle property to assign a new font for the form's caption. Use the ImageTitle property to assign a picture to the form's caption. Use the form/container's Caption property to assign a caption to your form. The Caption property supports built-in HTML format like follows:
  • <b> bold </b> bolds a part of the caption.
  • <u> underline </u> specifies that the portion should appear as underlined.
  • <s> strikeout </s> specifies that the portion should appear as strikeout.
  • <i> italic </i> specifies that the portion should appear as italic.
  • <fgcolor=FF0000> fgcolor </fgcolor> changes the foreground color for a portion.
  • <bgcolor=FF0000> bgcolor </bgcolor> changes the background color for a portion.
  • <br> breaks a line.
  • <solidline> draws a solid line. If has no effect for a single line caption.
  • <dotline> draws a dotted line. If has no effect for a single line caption.
  • <upline> draws the line to the top of the text line
  • <r> aligns the rest of the text line to the right side. It has no effect if the caption contains a single line.


method Attach

method ExSkinForm.Attach (hWnd as Long)
Attaches the skin to specified window.

Type | Description
hWnd as Long | A long expression that indicates the handle of the window where the skin is applied.
Use the Attach method to apply skins to any window you have. For instance in MFC, a MDI project contains MDIChild windows. When you place the ExSkin component to your CFormView's dialog the skin will be applied to the dialog, instead being applied its parent window. In this case you can use a sample like follows:

void CMDIFormView::OnInitialUpdate()
{
    CFormView::OnInitialUpdate();
    ResizeParentToFit();

    // You can use the eximages tool in order to save the skin file as a BASE64 string and to pass it to the File method
    ////////////////
    // Loading a skin
    CString s;
    s = "gBFLBTJYCAEHhEJAABhABVoYg6AABACAxWgKBADQKAAyDQKkEQGGQbRjhEAIGglg4JYjjKKxSgmHYDRTFMZwGA0EwcAAZBpEWR5JiuCQ1DAJMSjMAkRxtGyPZQhGQZXgOJ4sSpQAigFBIYhtE6YJikMDZbj2OoPUzAdCQG78EyrDahKCqMAKGoiMZbRKDVQgARMRj3BIFLDrOpwAqyE5ZR5QMrzDT0XQ2BixQgkMTYJriIJOTZcEL3FAdEwqGgCcAhEC4JIWCQ9QiddhyFIcfyKGIcYpGGqxRDSFQyZRAd5XfDZCQTDKBShtKptMpicZ2ShKWaQbadBxGCKxSShHRoDKOCRParV36sCzHMJJXTJcRgfYYLZ3BIjIRKCw8KhNi+IRhm6OgQAWJh7iMABTCAYx8h0Oo3kWFpdGsYwhhSVg3mGChImSMA9kQDBFkGNpwm2fR/l4FppjUcoWgUOAXgAUAwmGZBPFWNhpFsDJZhQeYcAwGIUG2Xx2kOJAlGIQJEkeXRsFuHRmA2MB6B+eIFBsdxfAQbAhoMAJVlQdRAAeHQqHYWxVgGCxIkQCB0AAHISngHQ3EmWYkhwLQMkMNh9moewSDgXglAABRUCWcgATiJgGGkAAFi2eYNiICB5kmCIkHQDQXGMJQJCUAwGlCEYBAkDYijcVguHGVZ1BYEBtlYOR4AADhmK6SIGiUNJ5nwcYehQehEEaYwknUOROF2NJaEsSZDBCRA3EyUw2HAMR2l6dBVm0AAkjAZQJAeJh";
    s = s + "WCqBIhiiCYOgqHxAAkGQVHAEhECQbRCEGWhVgCGZZkCYZaGUVg4hISwHCoShWBwa4lGaPYcFGYwUgwFBYmMWoFAODggFqGROioFBamGfRtieRYOiWL4AAqhYTmWFQ5DwQJDAQVAwiPaRBDGNgtiCFQ2AIFgwj4Sh0BCF5aFCCwilmXhVgoX5rB4ABUhYN5ShAQhXkQDoUjmbQlg6VRCG0eYqGlmgbEEGhFl0WZ+kITxmHkXpuEiWoJB4JIykABppAMbwuguJhQIge54P4bYYD4DxNiENAlFuNAcmQDBLiyJxQAMGZAC2XBzBiRoymwehqE2LwkFYGYwFAMZ5KKMoHAqNBXAMAJKD4DQDASMAzA4Mo9AEMZLiidhRFWNJdkqRQDkSAAMFMFeUokaQYkcEYwGkHQGFCOBiBsRwEFSFpJkAAQIE2WZRjmkIKBCERmHIUxBgQaBgloNR1F8epPjeG8Yw/RfCfHGGgZwMwGjDBQMAFwiRhBQEYBoQowgjgZGOHEXgfwSjIHkJwQ4LRkjyH4K8GIzR5hcHeDMZ48xOgHB6NAegnQPhNGiHUDgeA4AZESFwMAjAMwTCuFYFoCQBAgGsDABYQxQDaBoO8To7h/jfhyPcP44R8ArDRAyJIeBjAwAUKIEAegYiKCEFAco3AHjjDwNIIgDwBiRAwD4BwxAwD6B2PsYYuQNA/AeB8D4yx5B8G+E8aI9R+D/DeNUe4fRPh/HKPgfwnxDjtHyP4f4rx4j9H+F8d48gPAfAQI0P";
    s = s + "Y7wwA5TgOADQwxMBiAWI8IAJQChAEAA6IoMwChhEYCsQg4BzAbCGFsYAgwngQGsLwK4AAPDDDwGsBowQ6ArEQDgFwJgiBIEGBUIQcAlgLECFQFIRgMC3AsCMFgXwFiRE4DAIo6BngYDEPoDoCxwigBiCEegQBDjxAMCIIgOBGgQFEEQIoiQYgeBKEQbAmQJjiC4FERI0QlAoCKDgVoFQxDEConAdAXxijBExOocAxwLhCGwF4BQ8QqArEKAgTYEwxA0CIAgFALgMhCFAEwOwQBmAxliJwDYwwpi8EGJEdszRYj+A4KAYAfg4BCB4EAA4oQpAmGIKgYAFghC0DOIwEIegbAGDAMcDYowiBmAcAEVQNADgYGuBoIYkA2ANCCMgGwZB6CgA4KMNAahlA5CWCkEoNBUiVAkK4KYyhshVBWKUMgrxLBSGMFoJYCQ2gsHKLwWolwJDuC6EsbIcwUjGFhL0MYXA5CNFiK0FFohxAaHGEwN4DQYicBqIYLAxwMCiHQFoRQsQeAmBACAMQCgAgqAQIIXFNBxjzF8I8QQCAfAHEDcAYY9AVgSGGAi3g8RUAxGMBQSYGRBiImYBkGQNBTi4HGBsAYTgnBPGSDsE45QEDUEuJIfwgRoBZD6EEVAJaohUBMIYKAiQ8gwDMBiXogwuBzEaMEWIRQ0C4G6BsCgSA2BPFCKgGwhg8DLAwNERgUgEhhBEB0QYMAwAJEAOxPw9wGg4UoMQCAoR8A+EUCEFAIxCjIagNIGgXsHigBkO";
    s = s + "cUg9hJhTHMKEagOR7g/DIOUAIoAKA6EKNQZQGwphqEKE8VQVQdCmCiAEV4RBUClAsKMAYnhGhVGCLMK4qBwDiEmKMKAZBGBBDICkIoAJZgBFQCcAY0A1hLEmBQPggxQjQBwAYcIXATjEGoIoCrTgwgNHyJ0KAagSD4FQLYBQfAqB7AaFIUoFQoiqEsCoYwVQdgbDEOwOguRVDVDEK0aoqhdA3DUP0TAqxqh4DkqUVlXw0DJAsNAXlUAVDYAcMEVYuhOARHaL8aYkQlAxEKMAWYGhRggDCNccInQwAsA6IEW4VgNB/CoKsPIUgWj9GCJ8a4DhwBcCWIUOIbgijHFyFcDQ5guCbE2HIdwdRoi6AsPIKoWQdAnDKGgZqPgbhuGaNkRIigajtABsgQQnAogHEMLYcgAw8BtDOI8BgthFChCICcQ0WQLhDC4GURgWw2huBYCUXQtwa2uC2OuRo7hLAAF0HgBYAgwAcAaIAeAPgCi4iCGEKoexXhWFYLUbQuxbhyGaFkRYOgairBAMUCoEgQA0EKJAUlNRcBSE4EMfgaRGBhEEDYIwaBkC+HmNYfoXxNj3D8G4Bo/hgg4GeAS0oFRGjxFMDgYw1wdgGCiBwD4RR4COAmMgLAVh2jWBUMgF4RRkCQAgCEdgKQgDwHYBwCoGR8UWEYFABoigiA3EMJAZov5wguC2JwMYQAYjODCMcPIjwOhmC4MUTIrhSbRGqGcEAXYPCFBmIUDgG/ghmCsHEIAGxhD4CyAwcIaAVAcB";
    s = s + "CKgGQBgLAoGKFMHYLhxVFDcO8dwYBmCZE/3kXoHRNO1BihjhcAdgbAqhdgXhOAZg/AJgOAxgyA1BGBQg/AXBZAoA9gFAAB6gThKgtEShDgGBLhoBdBXgXg0BMgghRg6BHBHhrANBngsgwAeuIAYBDA3BkBNAzguhshGByhOgChEBSgJh8hwAWBmhoAAgUhThoBphlg8BfgtA1gOhOhZg7BDBahsh8hTAwAwBug4hNg1BzAJBrhdAxg2h0hYhVAZgDAABeAJAZhIAVheB2hHgUgbAnBlhoBtgjg0h3Buhshdh7BLAEhrB8B/glg2hWhcheh1B7BvBuANhFg5A3A2hIgfB7gqhAhvANhdg8B4AvAEhgh4hzA1BtBthpgQFtg8hOAbhrBwhuAwh5g5BMgAhpAbhjBugMBPhdALhAh4hvAGwBAjBHhvA9ArhDB3hHAOhIgcBHB+BxOCBFh4hNAWhjB4g+B7hyAOBnhHh5gvAhhmh6hDgHheARBEAlBEB8BwBDA8g3gNBPg+A5hNg5gnA4hog9AjgjhjB+B1BoB5hnA+mOADgghyh+gHhMBkhXBGhqh9AngsB0guC1AGBPBOhnh9BHgMB0AhgnhRA6hfBZhsh9gbg0h1hOBOA2LmA9hsAdBIBsBzANAPhVg7BHBahuh9hbg8hpAOg7hXh6gHBxhuB4g3g8B2guh1hgg8AthChvgdg/g/B2AugnhZA6gsgbhwgeBDhBh5AvOAg8BHBPhoAeAvg5B1BOhphjh8gfgRh";
    s = s + "ygegDg0B5BuhhhmB8AGhMhzh+gjhPB6gug1hoh8BXAuhzBeA3hOB6AfBXhqB9gehsh1g+BjhXh6BthXhtB9hvg0h3h+hfg2B2hvAvhYB9hXgbhwA+h7hbS0AXgZB9hHhFhsB9gXhlB8APgZh0gwAPhOhvh/AfhTh9A/g3h1B+glhLh6h+gXhsh7hPg5h3g/Anhmg4g/gDhjB7S0h5h/Avhdh8hfgnhoB4hvhfh9A/B3hMh+A+AzBChZAPh3Bjh/htgRB/hHpLQjgAA0gsB/gHgwB/goACgAgYABgAg4AEgAhIAKgAhYAQBKBIAGB7g1gBgBAYAOgBB4AWgBgYAPgBg4AYgABXhCB0hXgJB7gXhyB5hIAagBhYAmgCBYAogBhIApBLBoATB+AoAVgCgoAwgCB4AxgCg4A00VAtB+g2AvgDBYAygDg4A6gDhYAzHvA3gAgIA8gDh4BDgEBYA+n7BAgBh3BegCAXhPB/gXgOgEB4BQgEBIBRgEgIAXgEAYBPgFAoBYgFBIBTgFg3h+gFBoAkgFgYBcgFgoBggGA4ALB9BwhgANhHAaBKAEh3AIhgBKUVBsgGw8gGh4BygHAYB0gHAIB2gHA4B3gHBYB4gHg4B6gHhYB5gHh4B8gIAIB+iK0zA4gGgIAogIgIBYgJgIB4gKjvgMgHhlBeBSAAhLAKBwgZAJBABnAFBxhTAOgHglgGgkgaAHAgA9CNASAEhgAiAJAYgigKAYgjgKMIkOgngKg4gmtUAqgKhYitAog";
    s = s + "mgLA4gxk3AygLBYg4gLB4g6gLBog8gLgYg9gLg4g+khhAgMTmgMBYhCsQhEgKgYgxgKhohLgMgogsgMhogwgLgogqgJAVAhgJBAgUBhhR1kgYBngGv0hPBwBfADBQAVAIBQBKACAggWAFAgAnAJBgBUgOB4hmgOBYhqgOhYho2bhpgOh4hygPAYh0gPNqAPA4h3gPBYh4gPg4h6gPhYh5gPh4h8gQAIh+gQAZAEgQNhgQApAIgQBZAJgQB4hsgQhYhrgOg4hxgRAIhtgNBIgTgJBYgXgJgYgbgNhUgaAGAwA4CNAJVqgnAJgwBZACg5AiJbgcgSA5AngSBpAogSg5AqgShZApgSh5AsgTAJAugTAZA0gTA5A2gTApA4gTBZA5gTB5A6gTiggTh5A7gUAZA+gUApA2XDBX3IhHgSBZAygUBpAtgUhJAp3fBQgShJAUgNBohYAAAIgaB7gogcANAgBngJiTWYgrAKAgBdAChpBggWXugDA5BjgWB5BhgWgJBkgWg5BqgWhZBpgWh5BsgXAJBugXAZB0gXA5B2gXApB4wKB5gXB5B6gXhZB8gXh5B735hmgWBZB3ADAwghgYBJgCgWAJgDgXggAzgVA4gVgVBYhagGgHAvgVojAEAAVrhQXEBggoAGBQA1AKgZgcgZhgA4nWA1gaApgkgZhJglgaA5gmgagZgogag5gngahZgqgahpgsgah5gygbAZg0gbAJinA5gKgbgZBhALAAB4LiA9AIolgMggjvNAALAwg";
    s = s + "fANu7AKhgheAMBgg3ANhghFALBQhXALgggmYvB3AFAJgKgYB5gL4dg6gYg5g8gbhphAgcAphEgcNrgcgphMgchpjxAphUgdBpBlgdgJBjgaAJhugbA5gggYhogWgJgHBRgNg5gTgRgghSAHAABCACBwgcgNhwgvAGkQAfhwA9YvBqggA6AAALAKAHgggaK5A6AIgghKAKgghaAQggh6ASgghqAUghAaAVghA6AWghgaAYghkQYbYZBZgVALAgB1AEhAg8WVhiAKgQgAHugGAGBgBSAGBzgyAFBAA4ACBwBjAE1ogIBgByHug3AKBQgaAOBEgNAMBwgbAHhqAgAEAJgi5oAegkAaAigiBKAm1tAqgihKAuADgKAwgjAqA0gjBqA4gjgqA8AMAqA+gkAJgVgkA6AFggVGAgAKACghAKAFgfApAXgfBZgSB3ApBZAHBABIJbghYYA7ALBph6gmhgBCALBgBygnAaBzgnAqB0gnB6B2gngaB1gng6B4gnhKB6gnhagAgnh6gCj0AEgoAa09g6gG6wBcALAQBtAEAAqzAgBIAJhgBraAh3Vqg4AHhABQADgAgDAFZfAIAwBVADhQB0MWA1AGM/ACnW2UWZhAB/AHZoAMAwg2DmgfAIAaANgnBq2KhagPgpAagTgpBagXgpgagbgphagfgqAa6Whagn4mArgqhagvgrAagzgnhqBvgmh6B8gmAph0gVB4hcWSh4AEhJ5kmtALhAbDgAg9gtqugHBqhagthKhggth6h";
    s = s + "igtg6hjguAahkguB6hmgugahlguuEAuhKhqguhahwguh6hyguAggwgohQgpgVgwgvVoBKAKBQBwRQAtalBUALhQB/AFggvTBwBfnW8OAgBaAKa+MWB6WYg7AFBQA7ZagTbFBwAOJcY7hBgwBqhkgvBQBAgvB6ABgvgqh8gvhrAAgwgrAIgwgLAKgwhLAOgxALASgxBLAW13AagxhKhcgt8ZgtgKhr6ghVAOBwheANgqhRBJggB6MWAzAKgga+hAhBbFBOAMArBGAMA7BGg0gABMg0hLBOAHhLQvgLBPg1AbBUg1A7BWg1ArBYg1BbBZg1B7Bag1hbBcg1h7Bbg2AbBdAKAABma/ArZZBKAMhQgOAGBghQAIhwBnY2AXJmhnAJhwB0NzgiAHBwhsAKAwB3g3AwB1ANgQgWFSg0AHhQBaAHhwBZAEAKgcJbg1AJgglUgQgyAJgLBMg2BLBmg2gLBqdQhXH3lcBg3cgghuReAeAOhwgxAIhLgedyYrBwhkALBggZAMAAgRAHBLgEg4BgA9g4gL1xBLgO4qhLg7A7BHqchOgshhhTFchEBQVEbxhUAKbCAEGadfHDBwlEArhG18hH5EhMg8g7hOg8grhQg8hbhRg8h7hSg9BbhUg9B7hTg9gbhWg9grhYg9g7hSYxhabGhGWxhjdwgpAHhQ9ZBwB8AO4Xeehxczh/APAQgrg/Abhzg/AgB/AOi6AHhghdXDB0AKunA8gVchAgBucMa9BAgZ5Ehgg+Arhkg+BgB9A";
    s = s + "PAghCAKBAgIAFgQA7hBAQA7APBQhEAKBsAWe9AUhBBAhnALgQgeg/hsAAADg8AChABMAGAMgAgBg9hLhTY/hyAGgmGqAAhqP0G3hJBZAIBwBlRQAeAGBwBCAMengFAghLAIBABVhDhcA/hDhsBAhEA8BChEBcLxh8BEhEgMBG5HhMhEg8BOhEgsBQhEhcBRhEh8BShEgQbrhgHfgA8hAAh0ALgAgTe7wFhgh3fHAsu6grhGBsBoAMgMBnhGBAhwfBKaWOA9gsA1AHAjhNY2AuAJAcBAhFB8BZhFg8BdhFhAHww0YYSygzwJUgQDukAw20a+HEEUw50cuHeh1AqUSIUqh2yIgUoVAEls5FmERIkHs/gWREkHDWPRU7UgkyCMAeYGkEjAwAOoT6UwCmAgoFWlTyW0qmS6lhyYUseS+llyZUs2TSlnydUuOTylwyfUueT+l1ygUs4GkCEAVg8gUejFCigo4XkGhCcUgmVCkDwJA84UwFhCugooQIFFA9gYAHMClAhA2ISQEDyXUwuUemRC70yYXYF1CMg+AU0FiC2gwISekEC8GcuVRqXMFmCH00+Vmmzyu02+WGmDyaA0wcsshQFSCOgnjwYoF0AAClAwYUGMhShA0zUkFWCLgiQQJkTgFjoRgyVR6oAyg1G+h6pByhVIeiCpE0RVG+ScBDhLxoxSaYpAXEE8gbAEiSaDgJyaFoagHGE8AaAEbgcKEYgROEagRGA5ASIA4ALCEqgTCA5SVNoUylHoWgaGEdynC";
    s = s + "EbmCKEmT6G1fCbKk4SOBUGh5Kc2iBKgWiJKg2hOBsYRsBM6i8LwKBWBI4DwHAQAAJMoSkB0YTEBszjGBkQRyBYADoAkwBqBM+BwBgeB3KQ+j1KQ2j5KQuj9K8ej/JctRIf8aATIEFgfEEvAZIE9JMI4HxhLIGCBXg4R+ocrAXNsKAXMFeDBHssiBHoHwhagITSBcFwcic/GpAYDBhJ4ESAL8qQAIB/5sKEGAeMEtAZAE9gcDY2mOIkgibC8sj5Aksj7EMtB7EstD7FMtR5GkiAZFwGTBBQCyhMIhiMBoGhrGgFDBDAEhhDAETBBJ03mKEZgdIEyAcAE0RnHceE3CIDwAM8hzAeYtx9KMmwDL0OwBL0ej7L0mzSA0wCMAUwQAA0IC0oczgbFsal5PQGjhICpCeBYYTyBkYRbMAIRYqQlTALwBcwFwHhBXUwSocsIGjAoDABIwEAgKklTbOEvhANUvi7O4HyBMyCT4BwYSmo8upkyQYR1MQ4Ryo8tAYKE9pMI3YB3MEnAdMIHAlMInAtVsJyVMErLpA4syLDwGTIHY6TBCS7wWCowTcBwwTHIU4S7KILSSBcgRUBQADWAkABmlUxAIAEek6JwGR5FkyyYH8lSBJIEBAKkzA8MczBcMkzD8M0zQ8MszR8NEzScNUzCcL0zg8Lszh8L8zi8OUzjcOkzj8PUzw8OgFiXHwChAGoBBBEwEihBSjza1ewjhLKjy+BkmwcBgQT2Bo+w3LMXQjLI2w0ocpG3IxzjwBVEQ";
    s = s + "CQAh/CmBwXozxgCZGgB0Ao0BOgNGiB0Co0ROgcA2D1U4WwcjSF2DkaYHQajTE6D0agHQiiHG4MgDAtxHAYGCAoBaiH2hkG+CkHQGQkBqHSMcQgHxwjIA244XYQRhi7FCLUXY4RSASYyA4OoIQWBZEUBgCwjRCDcGuHga4igIAdF+NwHovRuB9cQJ0Yo3BejRG4P0YYzRejZGaP0bozRujhG6L0cYzQsCAAkoABYQBCAGDC94cIGFDjeA4OEfAHRQjEakNIDYgVhN4UeMkYgYRji/C4EsToQQBJVGcAgYIWAGjgEiIiRAhxujsAQB0eI3wuj5G+N4AI4AvAJHAN5DYXgMjhGCJUcQHgSjiE8C0RAFxJjbCAKAC4NRTLdCYBEVgJogCqA0CgMTKgwLpCKNkEIWgKuUA6OEaAHBdDYA2MwDU3RRPtDoA8IAwAFAAHeGgAISgGx/AuKAegCRgiMAeOAUAGBAD8ASN4XI6xvC7HWP4Yo7AfDJHYB4Zo7A/DPHYL6Lw3hsjdB8NsboXhvjuB8N0bgAXVhgFQBgMA/AFABBMAscAexFgACIA8QA0lwBkAoIEGkQBSJkHgl5t4AROPtDcBSl4ERgDkAWLgegEwwDKAQB4eACgODJG2N4dY7h/DzHeH4fQBg/D/HgD8A48BfgPHiD8C48RfgfHkD8E48hfgvHmDwZAFxKimAsBVoAoQQAOD+BgDE0jKCfGwMkCwEwQgqAkH0SQKhAjOA4EEX4yQQjGHKLkISMBBGFCkxU";
    s = s + "VBbU0hAC4BMb4LgLgAHYAkIIhAHi+GmOwYIix2hfGCPsXw0R+B/GGPwT4xR+C/t6P8aoeQQiNG6DUeQCQLiCAKH0Jo7xvD9GoisdQ4Azj2EAJEfovRhj/E8NYCABAAhJEYIAFAMRwCqHmJEEA1giAVEoIYUQIg4DOBGBMQ4iBGADGiDkdQJBYCFCCCAaAWB9CYGoEILAoQGDtEMBIbIzhuhsGWBsFwZhthdFQMkMQsBLgrDAdMf4OhPBPDOKkYg2g2jgHUHMXYXBXAnCGHkWg5Q2C1A4G0OwkwA0pBuJUZIBg5AQFaBwLQHAVDNFIEWNIlBgA9AmBgE4sgxgIHsE4MAnwWhHGEHMBQ4w5i5C6C4e4axmjWHuHgXwXhXi4AWP4BQ/RCDAHCHAPAbAnAjAuIcXQ2xWhWGWEUTw0heg8AkJYY4QghCgGsEIJYxgKgoBmFMKIgBaCXHSKkOYFhdhNEgMMJIoxojzHyNwdYZRaB/UiKwK4ixWjQHYHIHAaQqDKDqEEUwzwwAuCgEYcYEQyBwBODkSQBRkgiHAOEJ4JAtCcEQMsWYsQQh/DMO4CQuxvADGuH8Yo4R4j5F4L4R4JxVjPHWPQfYPR/DvEeLcc48B9B8oyI4eQ+wWjZBIHUQgYhaBuAiAoiYQASBVGkCALQDwlDiCIH4GwzBZgNFMEsLgBzHg3AaIIeAuAnBbCsMbHwWxZidF0DoCgdQShLByE0UYVByA2AaDUIA0gWgKCEHANoFRiChCgDgBAlRICcD+";
    s = s + "BQAYMgehdDOIMWQZQMCQCGNkBwRRICkDyBIJAkRSCZBkEsSYpBUhCCaJQMg+QlBVEqCUPITgsiVFKKkAgOwSiFHgO4HoDgEBRCgDUDwBBgC4Dx0cKQbA/AbCYGIZApxCCSHKC0JQNhnCTD4NsHQJxJiQG8DYbYFB9CBDYOgFAeMUDUCmMgdgOgnDjEwOP1IA0zA1GcEcBQKxFhMBEMwVgIgDhxFYGMCYBADg8VWAMGAcQJCpDUEoTQqRVAqF0J4VoqhVDqFkK8VgqwNDSFgK0VYOhvC1FcCsXQ6heiuDUNQLAXQIACh8FUCICBYjMDGCoZIUgSDNBeFoKgtRTg2CnC5DeCQA6COATB2DXA3BOBTCADdCgAtD2DSCFC4APDzAkDGAxBoCTCoDwepBmD0DgCeANC6BKAnCKBNCFA9BOCKCNA7DKD5CKAvCjBWXECvC8ACD9DABvD8ALMYAwB8APT9CwCsAjALDDCwDcBDAMDCCpAjCeAXDFBNCDCceaBcALbnC2Z+B8DrA4DOADCrAgAxBMACD+DjDKCyC6ASCBAnAUAbCsDjC6AOD7CtBHA4BtCpDsDaDGBSDsBYDdDGAzEnA/DQC0AdATBADRC0A9AfBFDSA0C9ArBNDSB0D9AzBQDTC1AdBTBTDVC1AtBjBCDOBxDbBYDiA3ByAjB9C9A4BiBDC2CNA4DNDjBwCbAmXpCzArC4C2D8C0CvArBKDDCgDkA4CPAjC0DrA8BOCjCgDvA6AOBTC4DnA5AiBDCwD";
    s = s + "lA4B4BeAfCGDiA4C+ArCNDiB4D+AzCQDjC5AeBTCTWcAuBjCVDmB5B+BrCdjRD+BvChDiA2BTCKCMA4DoDDCTB+A5B3DjCbA0A5COBDB8DeArAKCiCrBtDcAhDcC3C2DuBbBSDkC4AuASDTBgDOAyDMCbCjDFA7AOCvAbDIDxXBAzDLDzC8CvBDDND0B8D/BLDVD1A9B/BPDZD1C9CvBjDbD3C9DfAsDtgECdDYkfCMCIBcDXBOAhC+DvDtDuK4AEEBA";
    m_skin.Load( s );

    // Specifies the minimum width that form can be resized to.
    m_skin.SetMinHeight( 48 );
    ////////////////

    // Attaches the skin to the MDIChild window, not to the Dialog as default.
    m_skin.SetActiveForeColor( RGB(0,0,0) );
    m_skin.SetInactiveForeColor( RGB(0,0,0) );
    m_skin.Attach( (long)GetParent()->m_hWnd );
}

The sample uses the Load method and a base64 encoded string to define the skin that will be applied to the MDIChild windows.

In case you want to assign the skin to a different window, you have to use also the SetParent API to change the parent of the ExSkin component, else when you will close the MDI form, the skin will be erased from the window you applied like in the following sample ( it is recommended loading the skin at runtime, also, multiple ExSkin components can be placed on the same form for multiple purposes )

void CMDIFormView::OnInitialUpdate()
{
    CFormView::OnInitialUpdate();
    ResizeParentToFit();

    // You can use the eximages tool in order to save the skin file as a BASE64 string and to pass it to the File method
    ////////////////
    // Loading a skin
    CString s;
    s = "gBFLBTJYCAEHhEJAABhABVoYg6AABACAxWgKBADQKAAyDQKkEQGGQbRjhEAIGglg4JYjjKKxSgmHYDRTFMZwGA0EwcAAZBpEWR5JiuCQ1DAJMSjMAkRxtGyPZQhGQZXgOJ4sSpQAigFBIYhtE6YJikMDZbj2OoPUzAdCQG78EyrDahKCqMAKGoiMZbRKDVQgARMRj3BIFLDrOpwAqyE5ZR5QMrzDT0XQ2BixQgkMTYJriIJOTZcEL3FAdEwqGgCcAhEC4JIWCQ9QiddhyFIcfyKGIcYpGGqxRDSFQyZRAd5XfDZCQTDKBShtKptMpicZ2ShKWaQbadBxGCKxSShHRoDKOCRParV36sCzHMJJXTJcRgfYYLZ3BIjIRKCw8KhNi+IRhm6OgQAWJh7iMABTCAYx8h0Oo3kWFpdGsYwhhSVg3mGChImSMA9kQDBFkGNpwm2fR/l4FppjUcoWgUOAXgAUAwmGZBPFWNhpFsDJZhQeYcAwGIUG2Xx2kOJAlGIQJEkeXRsFuHRmA2MB6B+eIFBsdxfAQbAhoMAJVlQdRAAeHQqHYWxVgGCxIkQCB0AAHISngHQ3EmWYkhwLQMkMNh9moewSDgXglAABRUCWcgATiJgGGkAAFi2eYNiICB5kmCIkHQDQXGMJQJCUAwGlCEYBAkDYijcVguHGVZ1BYEBtlYOR4AADhmK6SIGiUNJ5nwcYehQehEEaYwknUOROF2NJaEsSZDBCRA3EyUw2HAMR2l6dBVm0AAkjAZQJAeJh";
    s = s + "WCqBIhiiCYOgqHxAAkGQVHAEhECQbRCEGWhVgCGZZkCYZaGUVg4hISwHCoShWBwa4lGaPYcFGYwUgwFBYmMWoFAODggFqGROioFBamGfRtieRYOiWL4AAqhYTmWFQ5DwQJDAQVAwiPaRBDGNgtiCFQ2AIFgwj4Sh0BCF5aFCCwilmXhVgoX5rB4ABUhYN5ShAQhXkQDoUjmbQlg6VRCG0eYqGlmgbEEGhFl0WZ+kITxmHkXpuEiWoJB4JIykABppAMbwuguJhQIge54P4bYYD4DxNiENAlFuNAcmQDBLiyJxQAMGZAC2XBzBiRoymwehqE2LwkFYGYwFAMZ5KKMoHAqNBXAMAJKD4DQDASMAzA4Mo9AEMZLiidhRFWNJdkqRQDkSAAMFMFeUokaQYkcEYwGkHQGFCOBiBsRwEFSFpJkAAQIE2WZRjmkIKBCERmHIUxBgQaBgloNR1F8epPjeG8Yw/RfCfHGGgZwMwGjDBQMAFwiRhBQEYBoQowgjgZGOHEXgfwSjIHkJwQ4LRkjyH4K8GIzR5hcHeDMZ48xOgHB6NAegnQPhNGiHUDgeA4AZESFwMAjAMwTCuFYFoCQBAgGsDABYQxQDaBoO8To7h/jfhyPcP44R8ArDRAyJIeBjAwAUKIEAegYiKCEFAco3AHjjDwNIIgDwBiRAwD4BwxAwD6B2PsYYuQNA/AeB8D4yx5B8G+E8aI9R+D/DeNUe4fRPh/HKPgfwnxDjtHyP4f4rx4j9H+F8d48gPAfAQI0P";
    s = s + "Y7wwA5TgOADQwxMBiAWI8IAJQChAEAA6IoMwChhEYCsQg4BzAbCGFsYAgwngQGsLwK4AAPDDDwGsBowQ6ArEQDgFwJgiBIEGBUIQcAlgLECFQFIRgMC3AsCMFgXwFiRE4DAIo6BngYDEPoDoCxwigBiCEegQBDjxAMCIIgOBGgQFEEQIoiQYgeBKEQbAmQJjiC4FERI0QlAoCKDgVoFQxDEConAdAXxijBExOocAxwLhCGwF4BQ8QqArEKAgTYEwxA0CIAgFALgMhCFAEwOwQBmAxliJwDYwwpi8EGJEdszRYj+A4KAYAfg4BCB4EAA4oQpAmGIKgYAFghC0DOIwEIegbAGDAMcDYowiBmAcAEVQNADgYGuBoIYkA2ANCCMgGwZB6CgA4KMNAahlA5CWCkEoNBUiVAkK4KYyhshVBWKUMgrxLBSGMFoJYCQ2gsHKLwWolwJDuC6EsbIcwUjGFhL0MYXA5CNFiK0FFohxAaHGEwN4DQYicBqIYLAxwMCiHQFoRQsQeAmBACAMQCgAgqAQIIXFNBxjzF8I8QQCAfAHEDcAYY9AVgSGGAi3g8RUAxGMBQSYGRBiImYBkGQNBTi4HGBsAYTgnBPGSDsE45QEDUEuJIfwgRoBZD6EEVAJaohUBMIYKAiQ8gwDMBiXogwuBzEaMEWIRQ0C4G6BsCgSA2BPFCKgGwhg8DLAwNERgUgEhhBEB0QYMAwAJEAOxPw9wGg4UoMQCAoR8A+EUCEFAIxCjIagNIGgXsHigBkO";
    s = s + "cUg9hJhTHMKEagOR7g/DIOUAIoAKA6EKNQZQGwphqEKE8VQVQdCmCiAEV4RBUClAsKMAYnhGhVGCLMK4qBwDiEmKMKAZBGBBDICkIoAJZgBFQCcAY0A1hLEmBQPggxQjQBwAYcIXATjEGoIoCrTgwgNHyJ0KAagSD4FQLYBQfAqB7AaFIUoFQoiqEsCoYwVQdgbDEOwOguRVDVDEK0aoqhdA3DUP0TAqxqh4DkqUVlXw0DJAsNAXlUAVDYAcMEVYuhOARHaL8aYkQlAxEKMAWYGhRggDCNccInQwAsA6IEW4VgNB/CoKsPIUgWj9GCJ8a4DhwBcCWIUOIbgijHFyFcDQ5guCbE2HIdwdRoi6AsPIKoWQdAnDKGgZqPgbhuGaNkRIigajtABsgQQnAogHEMLYcgAw8BtDOI8BgthFChCICcQ0WQLhDC4GURgWw2huBYCUXQtwa2uC2OuRo7hLAAF0HgBYAgwAcAaIAeAPgCi4iCGEKoexXhWFYLUbQuxbhyGaFkRYOgairBAMUCoEgQA0EKJAUlNRcBSE4EMfgaRGBhEEDYIwaBkC+HmNYfoXxNj3D8G4Bo/hgg4GeAS0oFRGjxFMDgYw1wdgGCiBwD4RR4COAmMgLAVh2jWBUMgF4RRkCQAgCEdgKQgDwHYBwCoGR8UWEYFABoigiA3EMJAZov5wguC2JwMYQAYjODCMcPIjwOhmC4MUTIrhSbRGqGcEAXYPCFBmIUDgG/ghmCsHEIAGxhD4CyAwcIaAVAcB";
    s = s + "CKgGQBgLAoGKFMHYLhxVFDcO8dwYBmCZE/3kXoHRNO1BihjhcAdgbAqhdgXhOAZg/AJgOAxgyA1BGBQg/AXBZAoA9gFAAB6gThKgtEShDgGBLhoBdBXgXg0BMgghRg6BHBHhrANBngsgwAeuIAYBDA3BkBNAzguhshGByhOgChEBSgJh8hwAWBmhoAAgUhThoBphlg8BfgtA1gOhOhZg7BDBahsh8hTAwAwBug4hNg1BzAJBrhdAxg2h0hYhVAZgDAABeAJAZhIAVheB2hHgUgbAnBlhoBtgjg0h3Buhshdh7BLAEhrB8B/glg2hWhcheh1B7BvBuANhFg5A3A2hIgfB7gqhAhvANhdg8B4AvAEhgh4hzA1BtBthpgQFtg8hOAbhrBwhuAwh5g5BMgAhpAbhjBugMBPhdALhAh4hvAGwBAjBHhvA9ArhDB3hHAOhIgcBHB+BxOCBFh4hNAWhjB4g+B7hyAOBnhHh5gvAhhmh6hDgHheARBEAlBEB8BwBDA8g3gNBPg+A5hNg5gnA4hog9AjgjhjB+B1BoB5hnA+mOADgghyh+gHhMBkhXBGhqh9AngsB0guC1AGBPBOhnh9BHgMB0AhgnhRA6hfBZhsh9gbg0h1hOBOA2LmA9hsAdBIBsBzANAPhVg7BHBahuh9hbg8hpAOg7hXh6gHBxhuB4g3g8B2guh1hgg8AthChvgdg/g/B2AugnhZA6gsgbhwgeBDhBh5AvOAg8BHBPhoAeAvg5B1BOhphjh8gfgRh";
    s = s + "ygegDg0B5BuhhhmB8AGhMhzh+gjhPB6gug1hoh8BXAuhzBeA3hOB6AfBXhqB9gehsh1g+BjhXh6BthXhtB9hvg0h3h+hfg2B2hvAvhYB9hXgbhwA+h7hbS0AXgZB9hHhFhsB9gXhlB8APgZh0gwAPhOhvh/AfhTh9A/g3h1B+glhLh6h+gXhsh7hPg5h3g/Anhmg4g/gDhjB7S0h5h/Avhdh8hfgnhoB4hvhfh9A/B3hMh+A+AzBChZAPh3Bjh/htgRB/hHpLQjgAA0gsB/gHgwB/goACgAgYABgAg4AEgAhIAKgAhYAQBKBIAGB7g1gBgBAYAOgBB4AWgBgYAPgBg4AYgABXhCB0hXgJB7gXhyB5hIAagBhYAmgCBYAogBhIApBLBoATB+AoAVgCgoAwgCB4AxgCg4A00VAtB+g2AvgDBYAygDg4A6gDhYAzHvA3gAgIA8gDh4BDgEBYA+n7BAgBh3BegCAXhPB/gXgOgEB4BQgEBIBRgEgIAXgEAYBPgFAoBYgFBIBTgFg3h+gFBoAkgFgYBcgFgoBggGA4ALB9BwhgANhHAaBKAEh3AIhgBKUVBsgGw8gGh4BygHAYB0gHAIB2gHA4B3gHBYB4gHg4B6gHhYB5gHh4B8gIAIB+iK0zA4gGgIAogIgIBYgJgIB4gKjvgMgHhlBeBSAAhLAKBwgZAJBABnAFBxhTAOgHglgGgkgaAHAgA9CNASAEhgAiAJAYgigKAYgjgKMIkOgngKg4gmtUAqgKhYitAog";
    s = s + "mgLA4gxk3AygLBYg4gLB4g6gLBog8gLgYg9gLg4g+khhAgMTmgMBYhCsQhEgKgYgxgKhohLgMgogsgMhogwgLgogqgJAVAhgJBAgUBhhR1kgYBngGv0hPBwBfADBQAVAIBQBKACAggWAFAgAnAJBgBUgOB4hmgOBYhqgOhYho2bhpgOh4hygPAYh0gPNqAPA4h3gPBYh4gPg4h6gPhYh5gPh4h8gQAIh+gQAZAEgQNhgQApAIgQBZAJgQB4hsgQhYhrgOg4hxgRAIhtgNBIgTgJBYgXgJgYgbgNhUgaAGAwA4CNAJVqgnAJgwBZACg5AiJbgcgSA5AngSBpAogSg5AqgShZApgSh5AsgTAJAugTAZA0gTA5A2gTApA4gTBZA5gTB5A6gTiggTh5A7gUAZA+gUApA2XDBX3IhHgSBZAygUBpAtgUhJAp3fBQgShJAUgNBohYAAAIgaB7gogcANAgBngJiTWYgrAKAgBdAChpBggWXugDA5BjgWB5BhgWgJBkgWg5BqgWhZBpgWh5BsgXAJBugXAZB0gXA5B2gXApB4wKB5gXB5B6gXhZB8gXh5B735hmgWBZB3ADAwghgYBJgCgWAJgDgXggAzgVA4gVgVBYhagGgHAvgVojAEAAVrhQXEBggoAGBQA1AKgZgcgZhgA4nWA1gaApgkgZhJglgaA5gmgagZgogag5gngahZgqgahpgsgah5gygbAZg0gbAJinA5gKgbgZBhALAAB4LiA9AIolgMggjvNAALAwg";
    s = s + "fANu7AKhgheAMBgg3ANhghFALBQhXALgggmYvB3AFAJgKgYB5gL4dg6gYg5g8gbhphAgcAphEgcNrgcgphMgchpjxAphUgdBpBlgdgJBjgaAJhugbA5gggYhogWgJgHBRgNg5gTgRgghSAHAABCACBwgcgNhwgvAGkQAfhwA9YvBqggA6AAALAKAHgggaK5A6AIgghKAKgghaAQggh6ASgghqAUghAaAVghA6AWghgaAYghkQYbYZBZgVALAgB1AEhAg8WVhiAKgQgAHugGAGBgBSAGBzgyAFBAA4ACBwBjAE1ogIBgByHug3AKBQgaAOBEgNAMBwgbAHhqAgAEAJgi5oAegkAaAigiBKAm1tAqgihKAuADgKAwgjAqA0gjBqA4gjgqA8AMAqA+gkAJgVgkA6AFggVGAgAKACghAKAFgfApAXgfBZgSB3ApBZAHBABIJbghYYA7ALBph6gmhgBCALBgBygnAaBzgnAqB0gnB6B2gngaB1gng6B4gnhKB6gnhagAgnh6gCj0AEgoAa09g6gG6wBcALAQBtAEAAqzAgBIAJhgBraAh3Vqg4AHhABQADgAgDAFZfAIAwBVADhQB0MWA1AGM/ACnW2UWZhAB/AHZoAMAwg2DmgfAIAaANgnBq2KhagPgpAagTgpBagXgpgagbgphagfgqAa6Whagn4mArgqhagvgrAagzgnhqBvgmh6B8gmAph0gVB4hcWSh4AEhJ5kmtALhAbDgAg9gtqugHBqhagthKhggth6h";
    s = s + "igtg6hjguAahkguB6hmgugahlguuEAuhKhqguhahwguh6hyguAggwgohQgpgVgwgvVoBKAKBQBwRQAtalBUALhQB/AFggvTBwBfnW8OAgBaAKa+MWB6WYg7AFBQA7ZagTbFBwAOJcY7hBgwBqhkgvBQBAgvB6ABgvgqh8gvhrAAgwgrAIgwgLAKgwhLAOgxALASgxBLAW13AagxhKhcgt8ZgtgKhr6ghVAOBwheANgqhRBJggB6MWAzAKgga+hAhBbFBOAMArBGAMA7BGg0gABMg0hLBOAHhLQvgLBPg1AbBUg1A7BWg1ArBYg1BbBZg1B7Bag1hbBcg1h7Bbg2AbBdAKAABma/ArZZBKAMhQgOAGBghQAIhwBnY2AXJmhnAJhwB0NzgiAHBwhsAKAwB3g3AwB1ANgQgWFSg0AHhQBaAHhwBZAEAKgcJbg1AJgglUgQgyAJgLBMg2BLBmg2gLBqdQhXH3lcBg3cgghuReAeAOhwgxAIhLgedyYrBwhkALBggZAMAAgRAHBLgEg4BgA9g4gL1xBLgO4qhLg7A7BHqchOgshhhTFchEBQVEbxhUAKbCAEGadfHDBwlEArhG18hH5EhMg8g7hOg8grhQg8hbhRg8h7hSg9BbhUg9B7hTg9gbhWg9grhYg9g7hSYxhabGhGWxhjdwgpAHhQ9ZBwB8AO4Xeehxczh/APAQgrg/Abhzg/AgB/AOi6AHhghdXDB0AKunA8gVchAgBucMa9BAgZ5Ehgg+Arhkg+BgB9A";
    s = s + "PAghCAKBAgIAFgQA7hBAQA7APBQhEAKBsAWe9AUhBBAhnALgQgeg/hsAAADg8AChABMAGAMgAgBg9hLhTY/hyAGgmGqAAhqP0G3hJBZAIBwBlRQAeAGBwBCAMengFAghLAIBABVhDhcA/hDhsBAhEA8BChEBcLxh8BEhEgMBG5HhMhEg8BOhEgsBQhEhcBRhEh8BShEgQbrhgHfgA8hAAh0ALgAgTe7wFhgh3fHAsu6grhGBsBoAMgMBnhGBAhwfBKaWOA9gsA1AHAjhNY2AuAJAcBAhFB8BZhFg8BdhFhAHww0YYSygzwJUgQDukAw20a+HEEUw50cuHeh1AqUSIUqh2yIgUoVAEls5FmERIkHs/gWREkHDWPRU7UgkyCMAeYGkEjAwAOoT6UwCmAgoFWlTyW0qmS6lhyYUseS+llyZUs2TSlnydUuOTylwyfUueT+l1ygUs4GkCEAVg8gUejFCigo4XkGhCcUgmVCkDwJA84UwFhCugooQIFFA9gYAHMClAhA2ISQEDyXUwuUemRC70yYXYF1CMg+AU0FiC2gwISekEC8GcuVRqXMFmCH00+Vmmzyu02+WGmDyaA0wcsshQFSCOgnjwYoF0AAClAwYUGMhShA0zUkFWCLgiQQJkTgFjoRgyVR6oAyg1G+h6pByhVIeiCpE0RVG+ScBDhLxoxSaYpAXEE8gbAEiSaDgJyaFoagHGE8AaAEbgcKEYgROEagRGA5ASIA4ALCEqgTCA5SVNoUylHoWgaGEdynC";
    s = s + "EbmCKEmT6G1fCbKk4SOBUGh5Kc2iBKgWiJKg2hOBsYRsBM6i8LwKBWBI4DwHAQAAJMoSkB0YTEBszjGBkQRyBYADoAkwBqBM+BwBgeB3KQ+j1KQ2j5KQuj9K8ej/JctRIf8aATIEFgfEEvAZIE9JMI4HxhLIGCBXg4R+ocrAXNsKAXMFeDBHssiBHoHwhagITSBcFwcic/GpAYDBhJ4ESAL8qQAIB/5sKEGAeMEtAZAE9gcDY2mOIkgibC8sj5Aksj7EMtB7EstD7FMtR5GkiAZFwGTBBQCyhMIhiMBoGhrGgFDBDAEhhDAETBBJ03mKEZgdIEyAcAE0RnHceE3CIDwAM8hzAeYtx9KMmwDL0OwBL0ej7L0mzSA0wCMAUwQAA0IC0oczgbFsal5PQGjhICpCeBYYTyBkYRbMAIRYqQlTALwBcwFwHhBXUwSocsIGjAoDABIwEAgKklTbOEvhANUvi7O4HyBMyCT4BwYSmo8upkyQYR1MQ4Ryo8tAYKE9pMI3YB3MEnAdMIHAlMInAtVsJyVMErLpA4syLDwGTIHY6TBCS7wWCowTcBwwTHIU4S7KILSSBcgRUBQADWAkABmlUxAIAEek6JwGR5FkyyYH8lSBJIEBAKkzA8MczBcMkzD8M0zQ8MszR8NEzScNUzCcL0zg8Lszh8L8zi8OUzjcOkzj8PUzw8OgFiXHwChAGoBBBEwEihBSjza1ewjhLKjy+BkmwcBgQT2Bo+w3LMXQjLI2w0ocpG3IxzjwBVEQ";
    s = s + "CQAh/CmBwXozxgCZGgB0Ao0BOgNGiB0Co0ROgcA2D1U4WwcjSF2DkaYHQajTE6D0agHQiiHG4MgDAtxHAYGCAoBaiH2hkG+CkHQGQkBqHSMcQgHxwjIA244XYQRhi7FCLUXY4RSASYyA4OoIQWBZEUBgCwjRCDcGuHga4igIAdF+NwHovRuB9cQJ0Yo3BejRG4P0YYzRejZGaP0bozRujhG6L0cYzQsCAAkoABYQBCAGDC94cIGFDjeA4OEfAHRQjEakNIDYgVhN4UeMkYgYRji/C4EsToQQBJVGcAgYIWAGjgEiIiRAhxujsAQB0eI3wuj5G+N4AI4AvAJHAN5DYXgMjhGCJUcQHgSjiE8C0RAFxJjbCAKAC4NRTLdCYBEVgJogCqA0CgMTKgwLpCKNkEIWgKuUA6OEaAHBdDYA2MwDU3RRPtDoA8IAwAFAAHeGgAISgGx/AuKAegCRgiMAeOAUAGBAD8ASN4XI6xvC7HWP4Yo7AfDJHYB4Zo7A/DPHYL6Lw3hsjdB8NsboXhvjuB8N0bgAXVhgFQBgMA/AFABBMAscAexFgACIA8QA0lwBkAoIEGkQBSJkHgl5t4AROPtDcBSl4ERgDkAWLgegEwwDKAQB4eACgODJG2N4dY7h/DzHeH4fQBg/D/HgD8A48BfgPHiD8C48RfgfHkD8E48hfgvHmDwZAFxKimAsBVoAoQQAOD+BgDE0jKCfGwMkCwEwQgqAkH0SQKhAjOA4EEX4yQQjGHKLkISMBBGFCkxU";
    s = s + "VBbU0hAC4BMb4LgLgAHYAkIIhAHi+GmOwYIix2hfGCPsXw0R+B/GGPwT4xR+C/t6P8aoeQQiNG6DUeQCQLiCAKH0Jo7xvD9GoisdQ4Azj2EAJEfovRhj/E8NYCABAAhJEYIAFAMRwCqHmJEEA1giAVEoIYUQIg4DOBGBMQ4iBGADGiDkdQJBYCFCCCAaAWB9CYGoEILAoQGDtEMBIbIzhuhsGWBsFwZhthdFQMkMQsBLgrDAdMf4OhPBPDOKkYg2g2jgHUHMXYXBXAnCGHkWg5Q2C1A4G0OwkwA0pBuJUZIBg5AQFaBwLQHAVDNFIEWNIlBgA9AmBgE4sgxgIHsE4MAnwWhHGEHMBQ4w5i5C6C4e4axmjWHuHgXwXhXi4AWP4BQ/RCDAHCHAPAbAnAjAuIcXQ2xWhWGWEUTw0heg8AkJYY4QghCgGsEIJYxgKgoBmFMKIgBaCXHSKkOYFhdhNEgMMJIoxojzHyNwdYZRaB/UiKwK4ixWjQHYHIHAaQqDKDqEEUwzwwAuCgEYcYEQyBwBODkSQBRkgiHAOEJ4JAtCcEQMsWYsQQh/DMO4CQuxvADGuH8Yo4R4j5F4L4R4JxVjPHWPQfYPR/DvEeLcc48B9B8oyI4eQ+wWjZBIHUQgYhaBuAiAoiYQASBVGkCALQDwlDiCIH4GwzBZgNFMEsLgBzHg3AaIIeAuAnBbCsMbHwWxZidF0DoCgdQShLByE0UYVByA2AaDUIA0gWgKCEHANoFRiChCgDgBAlRICcD+";
    s = s + "BQAYMgehdDOIMWQZQMCQCGNkBwRRICkDyBIJAkRSCZBkEsSYpBUhCCaJQMg+QlBVEqCUPITgsiVFKKkAgOwSiFHgO4HoDgEBRCgDUDwBBgC4Dx0cKQbA/AbCYGIZApxCCSHKC0JQNhnCTD4NsHQJxJiQG8DYbYFB9CBDYOgFAeMUDUCmMgdgOgnDjEwOP1IA0zA1GcEcBQKxFhMBEMwVgIgDhxFYGMCYBADg8VWAMGAcQJCpDUEoTQqRVAqF0J4VoqhVDqFkK8VgqwNDSFgK0VYOhvC1FcCsXQ6heiuDUNQLAXQIACh8FUCICBYjMDGCoZIUgSDNBeFoKgtRTg2CnC5DeCQA6COATB2DXA3BOBTCADdCgAtD2DSCFC4APDzAkDGAxBoCTCoDwepBmD0DgCeANC6BKAnCKBNCFA9BOCKCNA7DKD5CKAvCjBWXECvC8ACD9DABvD8ALMYAwB8APT9CwCsAjALDDCwDcBDAMDCCpAjCeAXDFBNCDCceaBcALbnC2Z+B8DrA4DOADCrAgAxBMACD+DjDKCyC6ASCBAnAUAbCsDjC6AOD7CtBHA4BtCpDsDaDGBSDsBYDdDGAzEnA/DQC0AdATBADRC0A9AfBFDSA0C9ArBNDSB0D9AzBQDTC1AdBTBTDVC1AtBjBCDOBxDbBYDiA3ByAjB9C9A4BiBDC2CNA4DNDjBwCbAmXpCzArC4C2D8C0CvArBKDDCgDkA4CPAjC0DrA8BOCjCgDvA6AOBTC4DnA5AiBDCwD";
    s = s + "lA4B4BeAfCGDiA4C+ArCNDiB4D+AzCQDjC5AeBTCTWcAuBjCVDmB5B+BrCdjRD+BvChDiA2BTCKCMA4DoDDCTB+A5B3DjCbA0A5COBDB8DeArAKCiCrBtDcAhDcC3C2DuBbBSDkC4AuASDTBgDOAyDMCbCjDFA7AOCvAbDIDxXBAzDLDzC8CvBDDND0B8D/BLDVD1A9B/BPDZD1C9CvBjDbD3C9DfAsDtgECdDYkfCMCIBcDXBOAhC+DvDtDuK4AEEBA";
    m_skin.Load( s );

    // Specifies the minimum width that form can be resized to.
    m_skin.SetMinHeight( 48 );
    ////////////////

    // Attaches the skin to the MDIChild window, not to the Dialog as default.
    m_skin.SetActiveForeColor( RGB(0,0,0) );
    m_skin.SetInactiveForeColor( RGB(0,0,0) );

    HWND hWndAttach = AfxGetApp()->GetMainWnd()->m_hWnd;
    m_skin.SetParent( CWnd::FromHandle( hWndAttach ) );

    m_skin.Attach( (long)hWndAttach );
}

If the window is minimized, the HTMINBUTTON skin object is not painted ( in this case you have to provide its background picture, as it is not visible ).


property FontTitle

property ExSkinForm.FontTitle as IFontDisp
Retrieves or sets the window title's font.

Type | Description
IFontDisp | A Font object being used to paint the form's caption.
Use the FontTitle property to assign a different font to form's caption. Use the ActiveForeColor, InactiveForeColor properties to specify the foreground color for the form's caption. Use the form/container's Caption property to assign a caption to your form. The Caption property supports built-in HTML format like follows:
  • <b> bold </b> bolds a part of the caption.
  • <u> underline </u> specifies that the portion should appear as underlined.
  • <s> strikeout </s> specifies that the portion should appear as strikeout.
  • <i> italic </i> specifies that the portion should appear as italic.
  • <fgcolor=FF0000> fgcolor </fgcolor> changes the foreground color for a portion.
  • <bgcolor=FF0000> bgcolor </bgcolor> changes the background color for a portion.
  • <br> breaks a line.
  • <solidline> draws a solid line. If has no effect for a single line caption.
  • <dotline> draws a dotted line. If has no effect for a single line caption.
  • <upline> draws the line to the top of the text line
  • <r> aligns the rest of the text line to the right side. It has no effect if the caption contains a single line.


property ImageTitle

property ExSkinForm.ImageTitle as Variant
Specifies the image being displayed in the window's title bar.

Type | Description
Variant | A string expression that indicates a path to a picture file, a string expression that holds a picture object in BASE64 encoded format. Use the eximages tool to save your picture as base64 encoded format.
Use the ImageTitle property to assign a new picture to the form's caption. The form's icon is not the same thing. The form's icon goes to HTSYSMENU area. The ImageTitle picture goes to HTTITLE area. Use the form/container's Caption property to specify the form's caption.


property InactiveForeColor

property ExSkinForm.InactiveForeColor as Color
Specifies the foreground color when window is inactive.

Type | Description
Color | A color expression that indicates the foreground color of the form's caption when it is deactivated.
Use the ActiveForeColor, InactiveForeColor properties to specify the foreground color of the form's caption when it is activated or deactivated. Use the FontTitle property to assign a new font for the form's caption.


method Load

method ExSkinForm.Load (SkinFile as String)
Loads a skin file at runtime.

Type | Description
SkinFile as String | A string expression that indicates the path to the skin file (*.esk ), a string expression that holds a skin file in BASE64 encoded format. Use the Exontrol's exImages tool to build BASE 64 encoded strings on the skin file (*.esk) you have created.
The control is able to load the skin file at runtime, using the Load method. Also, the control supports changing the form's visual appearance by choosing the "Load Skin" item from control's context menu at design time. The control is able to handle compressed skin files and uncompressed skin files. Using the uncompressed skin files makes your loading time quicker than using the same version but compressed, due to the time of uncompressing. Of course, the time of uncompressing the string, file or whatever, depends on its size. Use the Load method to assign skins to your forms, by code. Use the Attach method ( with 0 parameter ) to unload a skin file. Use the MinHeight, MinWidth properties to specify the the minimum height. width that a form can be resized to.


property MinHeight

property ExSkinForm.MinHeight as Long
Specifies the minimum height that a form can be resized to.

Type | Description
Long | A long expression that indicates the minimum height that a form can be resized to.
Use the MinHeight, MinWidth properties to specify the the minimum height. width that a form can be resized to.


property MinWidth

property ExSkinForm.MinWidth as Long
Specifies the minimum width that a form can be resized to.

Type | Description
Long | A long expression that indicates the minimum width that a form can be resized to.
Use the MinHeight, MinWidth properties to specify the the minimum height. width that a form can be resized to.


method Refresh

method ExSkinForm.Refresh ()
Repaints the window.

Type Description
Use the Refresh method to repaint the window. Use the Load method to load a skin file by code.


property Version

property ExSkinForm.Version as String
Retrieves the control's version.

Type | Description
String | A string expression that indicates the control's version.
The Version property specifies the control's version.


ExSkin events
Tip The /COM object can be placed on a HTML page (with usage of the HTML object tag: <object classid="clsid:...">) using the class identifier: {7E1B1206-DAD1-45D8-B991-42148ACB7C59}. The object's program identifier is: "Exontrol.SkinForm". The /COM object module is: "ExSkin.dll"
The Exontro's exSkin component is hosted in a container, so please review all events in the container. They are fired as sussual.

Name Description


eXontrol Software - ExButton ActiveX Control - How do I assign a skin file to my skin?

How do I assign a skin file to my form?

We assume that you have already a skin file ( else you can search for *.esk files in the samples folder of the Exontrol's ExSkin component ).

There are three options to load your skin to your form

  • Loading the skin at design mode, by selecting the "Load Skin" item from control's context menu.
  • converting the skin file to a BASE64 encoded string and passing it to the Load method.
  • loading directly the file by using the Load method.

Loading the skin at design mode. Open the form that includes the ExSkin component and do a right click. Select "Load Skin" item from control's context menu. A file open will be shown to let you choose the skin file you want to apply.

Converting the skin file to a BASE64 encoded string is possible using the Exontrol's ExImages tool. It is free to use, so you have to download it and to run the ExImages.exe file. The following screen shot shows you the mainframe from the Exontrol's ExImages tool:

Open a Windows Explorer, locate your skin file and drag the file over the area "Drag here a file such of .... ". The tool generates the BASE64 encoded string in two formats: VB or Template.

The VB format shows like follows:

and it can be copied and pasted to your VB, VC code.

Also, the tool displays the length of the string that's required to hold the file you dragged. Important to notice is that the ExImages tool compresses the file before generating the BASE64 encoded string, but converting it to a BASE64 string it means that the size of the string will be with 1/4 greater than compressed file. The BASE64 encoded strings are useful to hold your icons, pictures, skins in string instead adding all kind of files to your application.

So, after we get the BASE64 encoded string all that you need to do is to pass the s variable to the Load method like follows:

The sample automatically updated the form's visual appearance when it shows up

Loading directly the file is possible by passing the path to the skin file to the Load method like in the following sample:

ExSkinForm1.Load "D:\Exontrol\ExSkin\sample\Skins\ICQ.Lite\icqlite.esk"


eXontrol Software - ExButton ActiveX Control - How to build my own skin file?

How to build my own skin file?

The Exontrol ExSkin library installs the ExSkinBuilder component ( "Exontrol.ExSkinBuilder" is the control's identifier ) that helps you to build new skin files for your forms. Before showing how you can build your own skin file, we have to review for a bit how the ExSkinBuilder can be used. If you already know how to use the ExSkinBuilder component click here to see how to start your own skin file ( a skin file defines the window's visual apparance ).

  • If you are a VB developer, click the 'Toolbox' panel, and choose the 'Components' from the panel's context menu. Once that you check and apply the 'ExSkin 1.0 Control Library' from the opened dialog, your 'Toolbox' panel includes two new components: ExSkin [image] and ExSkinBuilder [image].
  • If you are a VC developer, select the dialog where you want to insert the component, select 'Insert ActiveX Control' from its context menu, and dbl click the 'ExSkinForm ActiveX Control' ( ExSkinBuilder ActiveX Control ) item in the opened dialog.

Once that you have inserted a ExSkinBuilder component to a form or dialog, you are ready to build new skin files for your forms. Of course, you can use the ExSkinBuilder component to load and change already saved skin files. When the form that contains a ExSkinBuilder component is opened, the ExSkinBuilder component automatically shows the 'Zoom' and 'Properties' panels. The 'Zoom' panel helps user to magnify different portions of the screen. The 'Properties' panel contains information like, background color, background picture for the selected object.

By default, the builder adds all objects you need to build a window, including buttons, client area and so on.

The ExSkinBuilder's toolbox contains the following buttons:

Action | Description
Open a file | Opens a file. The file should be saved previously using the Save button. By default, the builder loads *.esk file. Keep the CTRL key down to create a new skin file.
Save a file | Saves the skin to a file. The builder saves everything that's required for the skin. Save As , if you are pressing the SHIFT key while clicking the 'Save' button you can choose a new file where to save the skin. By default, the builder compresses the files. Press CTRL key to save files uncompressed ( the message ' Save (uncompressed) as 'should appear on the save file dialog ).
Insert Object | Creates a new child object. The newly created object is child of the selected object. By default, the newly created object has no picture or color associated to it. You have to define the object's background using the 'Properties' panel. You can also, insert a new child object while ExSkinBuilder is focused by pressing the 'Insert' key.
Remove Object | Removes the selected object. Also, you can remove the selected object by pressing the 'Delete' key.
Alignment | A set of six radio buttons that indicates the object's alignment relative to its parent. The list of radio buttons in their listed order is: None, Left, Right, Client, Top and Bottom. For instance, if an object has the Left Alignment, it means that the object shares the left area of the parent with itself. The object's coordinates are defined in the edit controls labeled: X, Y, CX and CY. The edit controls that handle coordinates are enabled based on the object's alignment. For instance, if the object's alignment is left, only the CX coordinate will be enabled, or if the object's alignment is None, then all coordinates are enabled. The coordinates are relative to the parent object, and they may contain arithmetic expressions, and % sign ( percent indicates that the object is % from the size of its parent ) as well. For instance, 50% means half of parent's size.
Properties | A check button that indicates whether the 'Properties' panel is visible or hidden. The 'Properties' panel holds information about background of the selected object. Also, the the 'Properties' panel contains the list of pictures used by the skin. Details here.
Zoom | A check button that specifies whether the 'Zoom' panel is visible or hidden. You can use the 'Zoom' panel to magnify different portions of screen. In order to visualize a specified portion of the screen you can press "CTRL" key while moving the mouse, or you can click into the 'Zoom' window and drag the focused rectangle to the area being magnified. You can magnify the are by keeping the (SHIFT + )CTRL key and clicking the Zoom Window.
Draw grid lines | A check button that indicates whether the ExSkinBuilder draws the grid lines around the objects in the skin. The grid lines are not painted in the Test window.
Test | Shows a test window that applies the current skin.

In case you are not familiar with the objects that defines a window the following picture points each object in the window:

window.gif (10058 bytes)

A picture that shows how hit test values are arranged on a standard window

The object in the skin can have a hit test code. The window uses the hit test code to identify the action that will take when user clicks the mouse button. The builder handles the followings hit test codes:

Action | Description
HTNOWHERE | On the screen background or on a dividing line between windows
HTCLIENT | In a client area. Specifies the client are of the container window. The container window uses the client area to display its children windows.
HTOBJECT | You can use this hit test code to specify your own area. At runtime this type of object has no effect.
HTTOPLEFT | In the upper-left corner of a window border.
HTTOP | In the upper-horizontal border of a window.
HTTOPRIGHT | In the upper-right corner of a window border.
HTLEFT | In the left border of a window.
HTSIZE | In a size box.
HTRIGHT | In the right border of a window.
HTBOTTOMLEFT | In the lower-left corner of a window border.
HTBOTTOM | In the lower-horizontal border of a window.
HTBOTTOMRIGHT | In the lower-right corner of a window border.
HTMINBUTTON | In a Minimize button.
HTMAXBUTTON | In a Maximize button.
HTCLOSE | In a Close button. You can close the window by clicking the mouse in this area.
HTHELP | In a Help button. Changes the cursor to a help cursor when the user clicks in this skin object.
HTCAPTION | In a caption bar. For instance you can move the window by clicking the caption area and then dragging the mouse
HTSYSMENU | In a System menu or in a Close button in a child window.
HTTITLE | In title bar. The HTTITLE area displays the caption of the window. For instance you can move the window by clicking the caption area and then dragging the mouse

Notes:

  • the selected object is always marked using markers.
  • any change in the 'Properties' panel will be reflected in the selected object.
  • use 'Up' key to select the parent of the selected object, while the ExSkinBuilder is focused.
  • use the 'Down' key to select the first child of the selected object, while the ExSkinBuilder is focused.
  • use the 'Left' or 'Right' key to move through the objects that have the same parent as selected object.
  • you can change the order of the objects ( that have the same parent ) using combination of CTRL + PgUp or CTRL + PgDn key.

The 'Properties' panel is a resizable window that's visible only if the [image] button is pressed. The caption of its window is 'Background'. The 'Properties' panel is always updated when the selected object is changed. The 'Properties' panel defines the list of pictures used by the skin. The 'Properties' panel looks like follows:

Use the Picture menu to insert, delete a picture object from the skin file. Note that all picture files are saved to the skin file ( ebn file ), no matter if they are used or not. The ExSkinBuilder compresses the file, so even if you are using a bitmap file or a gif file, the file of the skin will be compressed ( use the CTRL key to save the file as uncompressed ). The 'Properties''s toolbox contains the following buttons ( in their order ):

Action | Description
Tile, Stretch | A set of two radio buttons that defines the way how the picture is displayed on the selected object: tiled or stretched.
Transparent | A set of three radio buttons that defines the picture's transparency. If the first button is pressed, the picture is opaque, so no transparent colors are used. If the second button is pressed, the picture is transparent. No picture or background is applied to the selected object. If the third button is pressed, the last two buttons ( the black buttons ) define the transparent color from and transparent color to. In order to select a new transparent color, you have to click on the one of the last two buttons and drag to the desired color. Once that you have selected a transparency color, you have to presses the button again to apply the transparent color to the selected object.
Colors | Defines a set of predefined colors. The X button clears the background color of the selected object. The bottom-right button ( bellow to X button ), helps user to add a custom color. How? Click the button and drag to desired color. Once that you have selected a custom color, you can press the button again and the builder will apply the selected color to the selected object.
Picture coordinates | The X, Y, CX, CY edit controls define the coordinates of the picture on the background of the selected object.

Now, that we are ready to go, we can start building the skin for your form. If you have already a skin file check the How to assign a skin file to my button? Between steps you can save the skin file using the Save button [image].

  1. Choosing the picture files that we are using to build our form. You can have a BMP file, a GIF file or a JPEG file ( or any picture file that your Windows recognize ), though we prefer the BMP file since it holds information about the picture without losing colors by compressing. In our case we choose this one [image] ( you can save it as a BMP file ).
  2. Loading the picture file using the Background panel, by choosing the Picture\ Add New item menu. You can assign the picture to the selected object by selecting a picture in the pictures list. The None item in the pictures list erases the picture from the selected object. Use the picture coordinates to select the area in the picture that is displayed on the selected object. You can tile, stretch the picture or to choose transparent colors. If we choose to get a picture transparent on the selected object, it will define also the region for the window as being non rectangular. In case you are not obtaining the non rectangular area that you expect you have to push the Opaque button [image] for all parents for the selected object.
  3. Defining the objects that composes our window. By default, the builder adds all objects that composes a standard window. It doesn't mean that you can't redesign how they are arranged. By default, the size of the borders is 4 pixels ( it depends on the border size of your system as defined in the monitor properties ). In our case if we take a closer look using the Zoom window, at the picture we have chosen we will see that we need a bit larger margins, or to define better the object as they will be displayed.
  4. Defining the look and feel for each object in the skin. For instance, we will define the left-top corner ( the one with a red pixel ), but the same thing can be done for all objects in the skin. So, first we have to select the object by clicking inside the object until builder marks the selected object. If your object is too small press the CTRL key and the area will be zoomed in the Zoom window ( also the cursor will be marked by a cross ), or use the arrow keys until you get the desired object. After you selected the object the Zoom window automatically magnifies the object in the Zoom window for a better view. You can hide the grid lines that's painted to mark the objects in the skin, by pressing the Draw grid lines button [image]. Go to Background panel and click the icqlite.bmp item. This way you assign a picture to the selected object. Choose the way how the picture is displayed: tile, stretch, transparent and adjusts the picture coordinates until you get the desired image in the selected object. If your object require transparent areas you need to press the Transparency button [image] and choose the transparent color "from" and "two" using the two buttons right to the Transparency button ( click and drag the cursor over the color you want to select, you can drag the cursor directly to the zoom window where the screen is magnified). After you select the transparency colors the builder considers the colors being the range of transparency used. Click once again one of these two buttons, and the transparency will be applied to the selected object. Please note, that if you want to get a non rectangular form, all objects that define the window count. If you suspect that the region of the form you defined is not like you expected please check carefully all parent items of the area that's not properly defined. Select the object by clicking inside it, and use 'Up' arrow to select the parent skin area and so on.
  5. After all objects were defined click the Save button [image] and your skin is ready to be used. At this point you can download the skin file here.
  6. How to assign a skin file to my form?


eXontrol Software - ExSkin ActiveX Control - How do I run the builder?

How do I run the builder?

The Exontrol's ExSkin setup installs in the VC\Builder folder the Builder.exe tool. In case you have it, you can associate the *.esk files using the builder.exe. This way you will be able to open a skin file by double clicking the file in your Windows Explorer. Also, the same version you can find in the NET, or VB folders.

If you can't locate any of them, you can do the followings:

  • Open a new project

  • Inserts the "ExSkin 1.0 Control Library" Component to your form.

  • Select the "ExSkinBuilder" icon on the component toolbox and add it to the form.

  • Save and Run the form.

In case you have

  • Installed the exskin.dll ( Exontrol's ExSkin Component File ) file,

  • Your web browser accepts running ActiveX controls on a Web page.

at the bottom of the page, find the Exontrol's WYSWYG Skin builder running.

You can check also the following:

  • How to create a new skin file?

  • How to assign a skin file to my form?

The following screen show shows how the Exontrol's WYSWYG Skin builder looks like.