Jump to content

Recommended Posts

Posted

Here's my code

GUICreate("My GUI Tab", 210, 110) ; will create a dialog box that when displayed is centered

    GUICtrlCreateTab(10, 10, 200, 100)

    GUICtrlCreateTabItem("tab0")
    $OKButton1 = GUICtrlCreateButton("OK0", 20, 50, 50, 20)

    GUICtrlCreateTabItem("tab1")
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    $OKButton2 = GUICtrlCreateButton("OK1", 140, 50, 50)

    GUISetState(@SW_SHOW)

    Local $aAccelKeys[1][2] = [["{enter}", $OKButton1]]
    GUISetAccelerators($aAccelKeys)

    Local $idMsg
    ; Loop until the user exits.
    While 1
        $idMsg = GUIGetMsg()

        If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop

        If $idMsg = $OKButton1 OR $idMsg = $OKButton2 Then
           MsgBox(0, "", "Pressed")
        EndIf


    WEnd

How to set {ENTER} to press all $OKButton1 and $OKButton2?

Thanks all!

Posted

When you post code please post it runable.

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)

Here is solution:

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>

_Example()
Func _Example()
    Local $hGUI = GUICreate("My GUI Tab", 210, 110) ; will create a dialog box that when displayed is centered
    Local $idDummy = GUICtrlCreateDummy()

    GUICtrlCreateTab(10, 10, 200, 100)

    GUICtrlCreateTabItem("tab0")
    Local $idButton_1 = GUICtrlCreateButton("Tab 1", 20, 50, 50, 20)

    GUICtrlCreateTabItem("tab1")
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    Local $idButton_2 = GUICtrlCreateButton("Tab 2", 140, 50, 50)
    GUICtrlCreateTabItem(""); end tabitem definition

    Local $aAccelKeys[1][2] = [["{PAUSE}", $idDummy]]
    GUISetAccelerators($aAccelKeys)

    GUISetState(@SW_SHOW)

    Local $idMsg
    ; Loop until the user exits.
    While 1
        ; You can not click $idButton_1 when Tab2 is active
        ; I think this is normal Windows GUI behavior
        _GUICtrlButton_Click($idButton_1)

        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $idButton_1
                MsgBox(0, 'Test', '$idButton_1 Pressed')
            Case $idButton_2
                MsgBox(0, 'Test', '$idButton_2 Pressed')

            Case $idDummy
                _GUICtrlButton_Click($idButton_2)
        EndSwitch
    WEnd

EndFunc   ;==>_Example

 

 

EDIT:
And remember about:

GUICtrlCreateTabItem(""); end tabitem definition
Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

@mLipokThanks for your code, I found the way to solved

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>

_Example()
Func _Example()
    Local $hGUI = GUICreate("My GUI Tab", 210, 110) ; will create a dialog box that when displayed is centered
    Local $idDummy = GUICtrlCreateDummy()

    $tab = GUICtrlCreateTab(10, 10, 200, 100)

    GUICtrlCreateTabItem("tab0")
    Local $idButton_1 = GUICtrlCreateButton("Tab 1", 20, 50, 50, 20)

    GUICtrlCreateTabItem("tab1")
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    Local $idButton_2 = GUICtrlCreateButton("Tab 2", 140, 50, 50)
    GUICtrlCreateTabItem(""); end tabitem definition

    Local $aAccelKeys[1][2] = [["{Enter}", $idDummy]]
    GUISetAccelerators($aAccelKeys)

    GUISetState(@SW_SHOW)

    Local $idMsg
    ; Loop until the user exits.
    While 1
        ; You can not click $idButton_1 when Tab2 is active
        ; I think this is normal Windows GUI behavior
        ;_GUICtrlButton_Click($idButton_1)

        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
             Case $idButton_1
                MsgBox(0, 'Test', "But1")
             Case $idButton_2
                MsgBox(0, 'Test', "But2")

            Case $idDummy
               Switch GUICtrlRead($tab)
               Case 0
                  _GUICtrlButton_Click($idButton_1)
               Case 1
                  _GUICtrlButton_Click($idButton_2)
               EndSwitch

        EndSwitch
    WEnd

EndFunc   ;==>_Example

 

Posted

this snippet;

Case $idDummy
               Switch GUICtrlRead($tab)
               Case 0
                  _GUICtrlButton_Click($idButton_1)
               Case 1
                  _GUICtrlButton_Click($idButton_2)
               EndSwitch

        EndSwitch

can be like this:

Case $idDummy
                _GUICtrlButton_Click($idButton_1)
                _GUICtrlButton_Click($idButton_2)

        EndSwitch

 

But if you want really click both button on different TabItem then you must use GuiSwitch like this:

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>

_Example()
Func _Example()
    Local $hGUI = GUICreate("My GUI Tab", 210, 110) ; will create a dialog box that when displayed is centered
    Local $idDummy = GUICtrlCreateDummy()

    $tab = GUICtrlCreateTab(10, 10, 200, 100)

    Local $idTabItem_1 = GUICtrlCreateTabItem("tab 1")
    Local $idButton_1 = GUICtrlCreateButton("Tab 1", 20, 50, 50, 20)

    Local $idTabItem_2 = GUICtrlCreateTabItem("tab 2")
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    Local $idButton_2 = GUICtrlCreateButton("Tab 2", 140, 50, 50)
    GUICtrlCreateTabItem(""); end tabitem definition

    Local $aAccelKeys[1][2] = [["{Enter}", $idDummy]]
    GUISetAccelerators($aAccelKeys)

    GUISetState(@SW_SHOW)

    Local $idMsg
    ; Loop until the user exits.
    Local $idActiveTabItem
    While 1
        ; You can not click $idButton_1 when Tab2 is active
        ; I think this is normal Windows GUI behavior
        ;_GUICtrlButton_Click($idButton_1)

        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $idButton_1
                MsgBox(0, 'Test', "But1")
            Case $idButton_2
                MsgBox(0, 'Test', "But2")

            Case $idDummy
                $idActiveTabItem = GUICtrlRead($tab)
                Switch $idActiveTabItem
                    Case 0
                        _GUICtrlButton_Click($idButton_1)
                        GUISwitch($hGUI ,$idTabItem_2)
                        _GUICtrlButton_Click($idButton_2)

                    Case 1
                        _GUICtrlButton_Click($idButton_2)
                        GUISwitch($hGUI ,$idTabItem_1)
                        _GUICtrlButton_Click($idButton_1)
                EndSwitch
                GUISwitch($hGUI ,$idActiveTabItem)
        EndSwitch
    WEnd
EndFunc   ;==>_Example

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

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