Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How to code a skinned UI like in Windows Media Player?

How to code a skinned UI like in Windows Media Player?

Scheduled Pinned Locked Moved C / C++ / MFC
questionc++designjsontutorial
12 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    Here[^] is a really good tutorial that should help you.

    It's time for a new signature.

    T Offline
    T Offline
    Tim De Baets
    wrote on last edited by
    #3

    Thanks for the link, but that tutorial only shows how to create non-rectangular windows with a bitmap background. I don't need a non-rectangular window, but a normal window with non-rectangular buttons on it, by using a colored mask (the top image in http://img130.imageshack.us/img130/5195/wmpbandimages.png[^]).

    L 1 Reply Last reply
    0
    • T Tim De Baets

      Thanks for the link, but that tutorial only shows how to create non-rectangular windows with a bitmap background. I don't need a non-rectangular window, but a normal window with non-rectangular buttons on it, by using a colored mask (the top image in http://img130.imageshack.us/img130/5195/wmpbandimages.png[^]).

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #4

      Sorry, but your title asked for information on "skinned UI". I'm not sure how to do the buttons you are asking for, but probably something similar. Try the articles here on CodeProject, it's quite likely some other CP member has written about it.

      It's time for a new signature.

      H T 2 Replies Last reply
      0
      • L Lost User

        Sorry, but your title asked for information on "skinned UI". I'm not sure how to do the buttons you are asking for, but probably something similar. Try the articles here on CodeProject, it's quite likely some other CP member has written about it.

        It's time for a new signature.

        H Offline
        H Offline
        hypheni
        wrote on last edited by
        #5

        Rather than using 3rd party gui library its hard to say its possible. If you can use some library like SkinCrafter then you can easily get what you want.

        L T 2 Replies Last reply
        0
        • H hypheni

          Rather than using 3rd party gui library its hard to say its possible. If you can use some library like SkinCrafter then you can easily get what you want.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #6

          Please reply to the poster of the original question.

          It's time for a new signature.

          1 Reply Last reply
          0
          • H hypheni

            Rather than using 3rd party gui library its hard to say its possible. If you can use some library like SkinCrafter then you can easily get what you want.

            T Offline
            T Offline
            Tim De Baets
            wrote on last edited by
            #7

            Of course it must be possible, I'm pretty sure that no library was used in the WMP desk band either. SkinCrafter looks like it's hugely overkill for my (relatively simple) problem.

            1 Reply Last reply
            0
            • L Lost User

              Sorry, but your title asked for information on "skinned UI". I'm not sure how to do the buttons you are asking for, but probably something similar. Try the articles here on CodeProject, it's quite likely some other CP member has written about it.

              It's time for a new signature.

              T Offline
              T Offline
              Tim De Baets
              wrote on last edited by
              #8

              OK, I've done some more searching, but unfortunately, I couldn't find any examples of how to use such a multi-colored mask. However, I think that I should take the following approach: for each color in the multi-colored mask, create a 2-color mask with the current color replaced by black, and all other colors replaced by white (by using something like ReplaceColor at How to replace a color in a HBITMAP[^]). Then, those 2-color masks can be used to BitBlt the individual segments (that might come from different state images) into one single image. Is this the right approach? I want to be sure that I haven't missed anything before starting to implementing this.

              L 1 Reply Last reply
              0
              • T Tim De Baets

                OK, I've done some more searching, but unfortunately, I couldn't find any examples of how to use such a multi-colored mask. However, I think that I should take the following approach: for each color in the multi-colored mask, create a 2-color mask with the current color replaced by black, and all other colors replaced by white (by using something like ReplaceColor at How to replace a color in a HBITMAP[^]). Then, those 2-color masks can be used to BitBlt the individual segments (that might come from different state images) into one single image. Is this the right approach? I want to be sure that I haven't missed anything before starting to implementing this.

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #9

                Tim De Baets wrote:

                Is this the right approach?

                Sorry but I couldn't say as I've never tried it. I offered the window skinning tutorial as that was something I have done in the past.

                It's time for a new signature.

                H 1 Reply Last reply
                0
                • L Lost User

                  Tim De Baets wrote:

                  Is this the right approach?

                  Sorry but I couldn't say as I've never tried it. I offered the window skinning tutorial as that was something I have done in the past.

                  It's time for a new signature.

                  H Offline
                  H Offline
                  hypheni
                  wrote on last edited by
                  #10

                  I cant understand why you are going towards complicity. Just use SkinCrafter or some other Skining library like DSkin which has Vista, Windows MPlayer skins and lots more. you just need to use their .dll and .cpp and .h in your project and a few lines of coding.

                  L T 2 Replies Last reply
                  0
                  • H hypheni

                    I cant understand why you are going towards complicity. Just use SkinCrafter or some other Skining library like DSkin which has Vista, Windows MPlayer skins and lots more. you just need to use their .dll and .cpp and .h in your project and a few lines of coding.

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #11

                    Please post your suggestions to the original poster of the question, who is the one looking for answers, not to me (second time of asking).

                    It's time for a new signature.

                    1 Reply Last reply
                    0
                    • H hypheni

                      I cant understand why you are going towards complicity. Just use SkinCrafter or some other Skining library like DSkin which has Vista, Windows MPlayer skins and lots more. you just need to use their .dll and .cpp and .h in your project and a few lines of coding.

                      T Offline
                      T Offline
                      Tim De Baets
                      wrote on last edited by
                      #12

                      As I already said, I don't want to use a full-blown library for such a small and simple skinned area with just a few buttons. And there's also the matter of personal interest; I would really like to know how it's done. Using a library just because you don't know how to do something, is a wrong reflex.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups