Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

How do I change the background color of a win32::gui button?

by ZJ.Mike.2009 (Scribe)
on Mar 16, 2010 at 08:36 UTC ( #828847=perlquestion: print w/replies, xml ) Need Help??

ZJ.Mike.2009 has asked for the wisdom of the Perl Monks concerning the following question:

This may be a very rudimentary question, but in the option for Win32::GUI button, I can't find -background option. Does this mean that I can't change the background color of the button?

I had tried adding -background=> 'black' to the button option like so but it didn't work

$main->AddButton( -text => "ok", -left => 226, -top => 65, -background => 'black', #doesn't work },

Is there any workaround for this problem? Thanks and regards :)

Replies are listed 'Best First'.
Re: How do I change the background color of a win32::gui button?
by BrowserUk (Patriarch) on Mar 16, 2010 at 10:02 UTC
    Is there any workaround for this problem?

    As is says in the documentation: "-background => COLOR -- Defines the background color for the control. Note that not all controls support background and foreground colors."

    For standard controls like Push Buttons, Radio Buttons etc. the buttons are drawn for you by system classes, using the colors and styles defined by the system pallete. This is all a part of the 'look&feel' of the interface that is applied right across the desktop and all applications. It allows users to configure the desktop to suit their preferences and requirements. Eg. a color blind person might ensure that the foregraound/background combinations are such that they don't exacerbate their particular handicap.

    You could go the route of creating your own widget that acts like a button, but then you've the responsibility for doing all the drawing, and event processing which is a complex thing to tackle.

    So the question to ask yourself is, are your users going to be impressed by you overriding their choice of control colors?

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      @BrowserUk, your explanation makes perfect sense. Thanks. BTW, I also remember you answered my previous question. So double thanks to you :)
Re: How do I change the background color of a win32::gui button?
by Anonymous Monk on Mar 16, 2010 at 09:46 UTC
    The fragment you have shown is a syntax error, see How (Not) To Ask A Question and post a small complete program which demonstrates your problem.
      @Anonymous Monk, thanks for leaving a comment. That syntax error was a mere typo. I assume this question is a very rudimentary one and complete illustration code might not be necessary. But thanks all the same.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://828847]
Approved by Corion
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2023-02-02 13:44 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (19 votes). Check out past polls.