Jump to content

GUIGtrlSetTip on $GUI_Disable Checkbox


Go to solution Solved by Melba23,

Recommended Posts

Posted

Hi Guys,

Is it possible to have a GUI Tip show on Disabled labels / check boxes?  Ideally to give a reason for the label being disabled.

I'm guessing this may not be possible but thought I would ask. Thanks in advance.

#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $msg, $checkbox

    GUICreate("GUI Example")

    $checkbox = GUICtrlCreateCheckbox("Checkbox", 10, 20)
    GUICtrlSetState($checkbox,$GUI_DISABLE) ; if State is Enabled the tooltip shows
    GUICtrlSetTip($checkbox, "Reason why checkbox is disabled ?")

    GUISetState()

    While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc

Strongy

  • Moderators
  • Solution
Posted (edited)

strongy,

I would use a label of the same size to act as a placeholder for the ToolTip when the Checkbox is disabled:

#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $msg, $cCheck

    GUICreate("GUI Example")

    $cLabel = GUICtrlCreateLabel("", 10, 20, 100, 20)
    $cCheck = GUICtrlCreateCheckbox("Checkbox", 10, 20, 100, 20)
    GUICtrlSetState($cCheck,$GUI_DISABLE)
    GUICtrlSetTip($cLabel, "Reason why checkbox is disabled")
    GUICtrlSetTip($cCheck, "Checkbox is enabled")

    $cButton = GUICtrlCreateButton("Enable", 10, 100, 80, 30)

    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $cButton
                Switch GUICtrlRead($cButton)
                    Case "Enable"
                        GUICtrlSetState($cCheck,$GUI_ENABLE)
                        GUICtrlSetState($cLabel, $GUI_DISABLE)
                        GUICtrlSetData($cButton, "Disable")
                    Case Else
                        GUICtrlSetState($cCheck,$GUI_DISABLE)
                        GUICtrlSetState($cLabel, $GUI_ENABLE)
                        GUICtrlSetData($cButton, "Enable")
                EndSwitch
        EndSwitch
    WEnd
EndFunc
All clear? :)

M23

P.S. Welcome to the AutoIt forum, by the way. :)

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted

Thanks Melba..

Yes that works perfectly for me..  For some reason I had it in my mind that I would be unable to overlap like this.

Thanks very much for the Welcome. 

  • Moderators
Posted

strongy,

You can always overlap controls, but you need to make sure that only one is enabled at any one time. if not, then AutoIt does not know which of the controls to action and so does nothing. If you ever find that controls are not working, the first thing to check is that there is not an overlapping label. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

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...