Jump to content
Sign in to follow this  

Enable/Change Control using BIT

Recommended Posts


Here is a working example of WHAT I DON'T KNOW how to do.

The desired results are to have a Button change color based upon what a Listview does (its state).
In this case the Button would turn "white" if its associated Listview becomes enabled (or perhaps shown).

In this script, after initializing, click on the Buttons to change Listviews (from 1 to 2 and/or back).
A Button, upon clicking, should turn white ONLY is the associated Listview is enabled, BUT in my case here they still turn white regardless. The buttons turn white even when the Listview is disabled.  

#include <ButtonConstants.au3>
#include <ColorConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiButton.au3>

$main = GUICreate(" Board", 680, 515, 150, 100)

$List2 = GUICtrlCreateListView("list2", 172, 72, 500, 260, $LVS_SINGLESEL, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT) ;Spending Log
;GUICtrlSetState($List2, $GUI_disABLE)
GUICtrlSetState($List2, $GUI_HIDE)

$List1= GUICtrlCreateListView("list1", 192, 72, 470, 260, $LVS_SINGLESEL, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT) ;Exp / Budget
;GUICtrlSetState($List1, $GUI_enABLE)
GUICtrlSetState($List1, $GUI_show)

$Button1 = GUICtrlCreateButton("Button1/list1", 10, 140, 158, 33)
GUICtrlSetState($Button1, $GUI_enABLE)
GUICtrlSetState($Button1, $GUI_FOCUS)
GUICtrlSetFont(-1, 8.5, 800, 0, "Verdana")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$Button2 = GUICtrlCreateButton("Button2/list2", 10, 180, 158, 33)
GUICtrlSetState($Button2, $GUI_enABLE)
GUICtrlSetFont(-1, 8.5, 800, 0, "Verdana")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$cEnterPressed = GUICtrlCreateDummy()


While 1

    $iMsg = GUIGetMsg()

    Switch $iMsg

        Case $GUI_EVENT_CLOSE


        Case $Button1

            If BitAND(GUICtrlGetState($List1), $GUI_enable) Then
                GUICtrlSetBkColor($Button1, $color_white)
                GUICtrlSetBkColor($Button2, 0xE3E3E3)
                GUICtrlSetState($List2, $GUI_hide)
                GUICtrlSetState($List2, $GUI_disABLE)
                GUICtrlSetState($List1, $GUI_show)

        Case $Button2
            If BitAND(GUICtrlGetState($List2), $GUI_enable) Then
                GUICtrlSetBkColor($Button2, $color_white)
                GUICtrlSetBkColor($Button1, 0xE3E3E3)
                GUICtrlSetState($List1, $GUI_hide)
                GUICtrlSetState($List1, $GUI_disABLE)
                GUICtrlSetState($List2, $GUI_show)



I thought I understood using BIT, but at this point I am thinking not.  Therefore I am not sure really how to do this.

Any guidance would be appreciated.  And thanks in advance.


Share this post

Link to post
Share on other sites

Find out from outside source that something like

BitAND(GUICtrlGetState($List1), $GUI_hide) = $GUI_hide

is what is needed, so looks like I have been enlightened.



Share this post

Link to post
Share on other sites

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
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.