Jump to content

Recommended Posts

Posted

In the help file, it says the following:

  Quote

Checkbox, Radio, Group or Progress controls cannot be painted if the "Windows XP/Vista style" is used.

I know there's a GUICtrlSetStyle() and a GUISetStyle()... but how do I make it so that it's 'not the Windows XP/Vista style' ?

  Reveal hidden contents

 

Posted

You can use this function from guiness.

; #FUNCTION# =========================================================================================================
; Name...........:  _GUICtrlSetTheme
; Description ...:  Sets a 'themed' Control with the ability to change the color of the control
; Syntax.........:  _GUICtrlSetTheme($iControl = -1, $bThemeColor = 0x24D245)
; Parameters ....:  $iControl - [optional] A valid control ID. Default = -1 (last control ID)
;                   $hHandle - [optional] A valid Hex color value. Default = 0x24D245
; Requirement(s).:  v3.3.0.0 or higher
; Return values .:  Success - Returns a value from the 'SetWindowTheme' DLL call.
;                   Failure - Returns 0 with @extended set as 1.
; Author ........:  guinness.
; Example........;  Yes
;=====================================================================================================================
Func _GUICtrlSetTheme($iControl = -1, $bThemeColor = 0x24D245)
     If Not IsHWnd($iControl) Then $iControl = GUICtrlGetHandle($iControl)
     Local $aReturn = DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $iControl, "wstr", 0, "wstr", 0)
     If @error Then Return SetError(1, 1, 0)
     GUICtrlSetColor($iControl, $bThemeColor)
     Return $aReturn[0]
EndFunc   ;==>_GUICtrlSetTheme

Or just use DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", <whatver variable points to the control>, "wstr", 0, "wstr", 0) after the control is created.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

  Reveal hidden contents

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted

Ahhh cool thanx Brewsky

  Reveal hidden contents

 

  • 2 weeks later...
Posted

  On 8/23/2012 at 2:22 PM, 'BrewManNH said:

Or just use DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", <whatver variable points to the control>, "wstr", 0, "wstr", 0) after the control is created.

Is there a way to reset the style of the control back to default? I tried to read the previous windows theme by using GetWindowTheme and use SetWindowTheme to set it, but I couldn't get it to work.
Posted

  On 9/5/2012 at 9:46 PM, 'phr3n1c said:

Is there a way to reset the style of the control back to default? I tried to read the previous windows theme by using GetWindowTheme and use SetWindowTheme to set it, but I couldn't get it to work.

Not sure if this works for this purpose... but give it a shot ^_^

GUICtrlSetStyle($control_ID, 0)
  Reveal hidden contents

 

Posted

  On 9/6/2012 at 4:31 PM, 'rover said:

To turn control theming back on

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hWnd, "ptr", 0, "ptr", 0)

That's working!

Thank you both!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...