Jump to content

Recommended Posts

#include <GUIConstantsEx.au3>

#include "GUIExtender.au3"

$hGUI = GUICreate("Move Example", 250, 230)

GUICtrlCreateGroup(" Choose Orientation ", 10, 10, 230, 80)

$cRadio_Horz = GUICtrlCreateRadio(" Horizontal ", 20, 30, 100, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$cRadio_Vert = GUICtrlCreateRadio(" Vertical ", 20, 60, 100, 20)

GUICtrlCreateGroup(" Choose Move Style ", 10, 100, 230, 110)

$cRadio_0 = GUICtrlCreateRadio(" Fix Left ", 20, 120, 100, 20)
$cRadio_1 = GUICtrlCreateRadio(" Fix Centre ", 20, 150, 100, 20)
$cRadio_2 = GUICtrlCreateRadio(" Fix Right ", 20, 180, 100, 20)

GUICtrlCreateGroup("", -99, -99, 1, 1)

GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cRadio_Horz
            GUICtrlSetData($cRadio_0, " Fix Left ")
            GUICtrlSetState($cRadio_0, $GUI_UNCHECKED)
            GUICtrlSetState($cRadio_1, $GUI_UNCHECKED)
            GUICtrlSetData($cRadio_2, " Fix Right ")
            GUICtrlSetState($cRadio_2, $GUI_UNCHECKED)
        Case $cRadio_Vert
            GUICtrlSetData($cRadio_0, " Fix Top ")
            GUICtrlSetState($cRadio_0, $GUI_UNCHECKED)
            GUICtrlSetState($cRadio_1, $GUI_UNCHECKED)
            GUICtrlSetData($cRadio_2, " Fix Bottom ")
            GUICtrlSetState($cRadio_2, $GUI_UNCHECKED)
        Case $cRadio_0
            _Create_GUI(0)
        Case $cRadio_1
            _Create_GUI(1)
        Case $cRadio_2
            _Create_GUI(2)
    EndSwitch

WEnd











Func _Create_GUI($iMove)

    Local $sTitle

    Switch $iMove
        Case 0
            If GUICtrlRead($cRadio_Horz) = 1 Then
                $sTitle = "Fixed Left"
            Else
                $sTitle = "Fixed Top"
            EndIf
        Case 1
            $sTitle = "Fixed Centre"
        Case 2
            If GUICtrlRead($cRadio_Horz) = 1 Then
                $sTitle = "Fixed Right"
            Else
                $sTitle = "Fixed Bottom"
            EndIf
    EndSwitch

    GUISetState(@SW_HIDE, $hGUI)

    $hGUI_Ex = GUICreate($sTitle, 500, 500)

    If GUICtrlRead($cRadio_Horz) = 1 Then

        _GUIExtender_Init($hGUI_Ex, 1, $iMove)
        _GUIExtender_Section_Create($hGUI_Ex, 0, 250)
        _GUIExtender_Section_Activate($hGUI_Ex, 2, "", "", 220, 10, 20, 20)
        _GUIExtender_Section_Create($hGUI_Ex, 250, 250)
        GUICtrlCreateLabel("", 250, 0, 250, 500)
        GUICtrlSetBkColor(-1, 0xFFCCCC)
        _GUIExtender_Section_Create($hGUI_Ex, -99)

    Else

        _GUIExtender_Init($hGUI_Ex, 0, $iMove)
        _GUIExtender_Section_Create($hGUI_Ex, 250, 0)
        _GUIExtender_Section_Activate($hGUI_Ex, 2, "", "", 470, 220, 20, 20)
        _GUIExtender_Section_Create($hGUI_Ex, 250, 250)
        GUICtrlCreateLabel("", 0, 250, 500, 250)
        GUICtrlSetBkColor(-1, 0xFFCCCC)
        _GUIExtender_Section_Create($hGUI_Ex, -99)

    EndIf

    _GUIExtender_Section_Action($hGUI_Ex, 2, False)

    GUISetState()

    While 1

        $aMsg = GUIGetMsg(1)
        Switch $aMsg[0]
            Case $GUI_EVENT_CLOSE
                GUISetState(@SW_SHOW, $hGUI)
                GUIDelete($hGUI_Ex)
                _GUIExtender_Clear($hGUI_Ex)
                ExitLoop
        EndSwitch

        _GUIExtender_EventMonitor($aMsg[1], $aMsg[0]) ; Check for click on Action control

    WEnd

EndFunc

I am trying to implement 2 side window toggle hide and show with 2 different menu.  can someone give me some direction  thanks

2horizontalCapture.JPG

Link to post
Share on other sites
  • Moderators

antonioj84,

Why hijack a completely unrelated thread when you could just open a new one - as I have now done for you?

That code is just Example 7 in my  GUIExtender download - and it works as expected. Now I will be happy to help you integrate my UDF into your script so it works as you wish, but firstly please explain exactly what you want to do - "2 side window toggle hide and show with 2 different menu" is as clear as mud.

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Moderators

antonioj84,

I think I understand, but it will be tomorrow before I can do anything - see you then.

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <ListViewConstants.au3>
#include "GUIExtender.au3"

; Create arrays to hold the controls on each tab
Global $aInput[7][3], $aButtons[7][3], $aListViews[3]

; Tab colours
Global $aTabColours[3] = [0xFFC0C0, 0xC0C0FF, 0xC0C0C0]
Global $aTabTitles[3] = ["Store CASA", "Store Regular", "Store Training"]
Global $iTab_Index

; Create GUI
Global $hGUI = GUICreate("IP CALCULATOR", 1214, 1019, 627, 0) ; 400,300) ;main gui 714px, other is 500

; Create menu left
_GUIExtender_Init($hGUI, 1, 0)
_GUIExtender_Section_Create($hGUI, 0, 500)
_GUIExtender_Section_Activate($hGUI, 2, "", "", 690, 6, 20, 20) ;create arrow button
_GUIExtender_Section_Create($hGUI, 500, 500)
;GUICtrlCreateLabel("", 250, 0, 250, 500) ;
;GUICtrlSetBkColor(-1, 0xFFCCCC);
_GUIExtender_Section_Action($hGUI, 2, False)


; Set teh font for eh whole GUI - then you do not have to do it for each control <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GUISetFont(8, 400, 0, "Arial")

; Create label to cover tab "tab"
Global $hColourTab = GUICtrlCreateLabel("", 0, 0, 1, 1, BitOR($SS_NOTIFY, $SS_CENTER, $SS_SUNKEN))

; Create tab
Global $cTab = GUICtrlCreateTab(7, 5, 682, 1019)

; Create tab items and colour them
For $i = 0 To 2
    GUICtrlCreateTabItem($i & " - " & $aTabTitles[$i])
    If $i = 0 Then
        ; Set 0 as active tab
        GUICtrlSetState(-1, $GUI_SHOW)
        $iCurrTab = 0
    EndIf
    _GUICtrlTab_SetBkColor($hGUI, $cTab, $aTabColours[$i])
    ; Create controls on each tab
    Call("GUImenu" & $i)

Next
; End tab defintion just the once
GUICtrlCreateTabItem("")

GUISetState()

While 1

    $aMsg = GUIGetMsg(1)
    Switch $aMsg[0]
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cTab
            ; Get the current tab
            $iCurrTab = GUICtrlRead($cTab)
            ; Now we can use this value to access the relevant set of controls in the arrays

        Case $aButtons[1][$iCurrTab]
            MsgBox($MB_SYSTEMMODAL, "Pressed", "Setting Button on tab " & $iCurrTab)

        Case $aButtons[2][$iCurrTab]
            MsgBox($MB_SYSTEMMODAL, "Pressed", "Exit Button on tab " & $iCurrTab)
            Exit

        Case $aButtons[4][$iCurrTab]
            MsgBox($MB_SYSTEMMODAL, "Pressed", "Create IP Data Button on tab " & $iCurrTab)

        Case $aButtons[6][$iCurrTab]
            MsgBox($MB_SYSTEMMODAL, "Pressed", "Screen Capture Button on tab " & $iCurrTab)
    EndSwitch
    _GUIExtender_EventMonitor($aMsg[1], $aMsg[0]) ; Check for click on Action control
WEnd

Func GUImenu0()

    ; The controls on each Tab are stored in the relevant section of the arrays

    GUICtrlCreateLabel("STORENUM", 36, 53, 66, 17) ; No need to store ControlID if you never use it <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    $aInput[3][0] = GUICtrlCreateInput("", 108, 51, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[6][0] = GUICtrlCreateButton("Create Screen Capture", 84, 349, 120, 33)
    $aListViews[0] = GUICtrlCreateListView("| UCS Subnet/ 28||", 252, 53, 361, 625, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    $aButtons[1][0] = GUICtrlCreateButton("Setting", 12, 957, 91, 33)
    $aButtons[2][0] = GUICtrlCreateButton("Exit", 92, 437, 91, 33)
    GUICtrlCreateLabel("Register", 48, 83, 54, 17)
    $aInput[4][0] = GUICtrlCreateInput("4", 108, 81, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[4][0] = GUICtrlCreateButton("Create IP Data", 89, 301, 107, 33)
    $aInput[5][0] = GUICtrlCreateInput("2", 108, 203, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    GUICtrlCreateLabel("Printer front/back", 14, 205, 88, 25)
    GUICtrlCreateLabel("Tablet", 50, 114, 52, 17)
    $aInput[1][0] = GUICtrlCreateInput("", 108, 112, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aInput[2][0] = GUICtrlCreateInput("2", 108, 142, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aInput[6][0] = GUICtrlCreateInput("2", 108, 173, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    GUICtrlCreateLabel("Receipt Printer", 26, 144, 76, 17)
    GUICtrlCreateLabel("Tablet  Printer", 26, 175, 76, 25)

EndFunc   ;==>GUImenu0


Func GUImenu1()

    GUICtrlCreateLabel("STORENUM", 36, 53, 66, 17)
    $aInput[3][1] = GUICtrlCreateInput("", 108, 51, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[6][1] = GUICtrlCreateButton("Create Screen Capture", 84, 349, 120, 33)
    $aListViews[1] = GUICtrlCreateListView("| UCS Subnet/ 28||", 252, 53, 361, 625, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    $aButtons[1][1] = GUICtrlCreateButton("Setting", 12, 957, 91, 33)
    $aButtons[2][1] = GUICtrlCreateButton("Exit", 92, 437, 91, 33)
    GUICtrlCreateLabel("Register", 48, 83, 54, 17)
    $aInput[4][1] = GUICtrlCreateInput("4", 108, 81, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[4][1] = GUICtrlCreateButton("Create IP Data", 89, 301, 107, 33)
    $aInput[5][1] = GUICtrlCreateInput("2", 108, 203, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    GUICtrlCreateLabel("Printer front/back", 14, 205, 88, 25)

EndFunc   ;==>GUImenu1

Func GUImenu2()

    GUICtrlCreateLabel("STORENUM", 36, 53, 66, 17)
    $aInput[3][2] = GUICtrlCreateInput("", 108, 51, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[6][2] = GUICtrlCreateButton("Create Screen Capture", 84, 349, 120, 33)
    $aListViews[2] = GUICtrlCreateListView("| UCS Subnet/ 28||", 252, 53, 361, 625, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    $aButtons[1][2] = GUICtrlCreateButton("Setting", 12, 957, 91, 33)
    $aButtons[2][2] = GUICtrlCreateButton("Exit", 92, 437, 91, 33)
    GUICtrlCreateLabel("Register", 48, 83, 54, 17)
    $aInput[4][2] = GUICtrlCreateInput("4", 108, 81, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aButtons[4][2] = GUICtrlCreateButton("Create IP Data", 89, 301, 107, 33)
    $aInput[5][2] = GUICtrlCreateInput("2", 108, 203, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    GUICtrlCreateLabel("Printer front/back", 14, 205, 88, 25)
    GUICtrlCreateLabel("Tablet", 50, 114, 52, 17)
    $aInput[1][0] = GUICtrlCreateInput("", 108, 112, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aInput[2][0] = GUICtrlCreateInput("2", 108, 142, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    $aInput[6][0] = GUICtrlCreateInput("2", 108, 173, 57, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
    GUICtrlCreateLabel("Receipt Printer", 26, 144, 76, 17)
    GUICtrlCreateLabel("Tablet  Printer", 26, 175, 76, 25)

EndFunc   ;==>GUImenu2

Func _GUICtrlTab_SetBkColor($hWnd, $hSysTab32, $sBkColor)

    ; Get tab position
    Local $aTabPos = ControlGetPos($hWnd, "", $hSysTab32)
    ; Get size of user area
    Local $aTab_Rect = _GUICtrlTab_GetItemRect($hSysTab32, -1)
    ; Create label
    GUICtrlCreateLabel("", $aTabPos[0] + 2, $aTabPos[1] + $aTab_Rect[3] + 4, $aTabPos[2] - 6, $aTabPos[3] - $aTab_Rect[3] - 7)
    ; Colour label
    GUICtrlSetBkColor(-1, $sBkColor)
    ; Disable label
    GUICtrlSetState(-1, $GUI_DISABLE)

EndFunc   ;==>_GUICtrlTab_SetBkColor

this is my progress , currently it can hide and un-hide horizontally the pink side. i am working on hiding half the menu blue(vertically) when the down arrow is clicked 

harry

interactive.jpg

Link to post
Share on other sites
  • Moderators

antonioj84,

My apologies, I have been very busy lately and I completely forgot about this thread -  I will try and find time to look into the problem today.

Note to all readers: if you want help with one my UDFs it is best to post in the UDF thread so that I am guaranteed to remember it.

M23

Edit: The removal men are delayed so I have a moment now. How about this:

#include <GUIConstantsEx.au3>

#include "GUIExtender.au3"

$hGUI = GUICreate("Test", 1000, 500)

_GUIExtender_Init($hGUI, 1, 2) ; Use mode 2 so the static GUI does not move

$iSection_1 = _GUIExtender_Section_Create($hGUI, 0, 500)
; Add some controls so we can see which section is which
GUICtrlCreateLabel("", 0, 0, 500, 500)
GUICtrlSetBkColor(-1, 0xCCCCFF)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the BLUE section that opens and closes", 0, 100, 300, 20)

_GUIExtender_Section_Create($hGUI, 500, 500)
GUICtrlCreateLabel("", 500, 0, 500, 500)
GUICtrlSetBkColor(-1, 0xFFCCCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the PINK section that is static", 500, 100, 300, 20)
; Activation control must be in this section, not the extendable one
_GUIExtender_Section_Activate($hGUI, $iSection_1, "", "", 690, 6, 20, 20)

; Close section creation structure
_GUIExtender_Section_Create($hGUI, -99)

; Close extendable section
_GUIExtender_Section_Action($hGUI, $iSection_1, False)

GUISetState()

While 1

    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    ; Pass GUI handle and event message to the UDF so it can action the extendable section
    _GUIExtender_EventMonitor($hGUI, $iMsg)

WEnd

 

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

hi Melba,

 

i am trying to do 2 thing and i hope you can help

1. i want the blue window to be static and the pink can be hidden and un-hidden 

2 i want the blue window  -  half  window that can be extended vertically ( hidden and un-hidden ) see below

toggleCapture.JPG

Link to post
Share on other sites
  • Moderators

antonioj84,

The UDF will only work in one sense within the same GUI - either horizontally or vertically. I did try once to make it bi-directional, but the logistics got too complex - especially if the sizes of the sections in the 2 directions were not compatible and there was not a fixed anchor section.

But in your case it looks possible that using a child GUI to do the other direction might work - I will see if I can come up with something this morning.

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Moderators

antonioj84,

This looks pretty good:

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

#include "GUIExtender.au3"

; Create parent GUI
$hGUI = GUICreate("Test", 1000, 300)
GUISetState(@SW_HIDE, $hGUI)

; Create sections in main GUI
_GUIExtender_Init($hGUI, 1)

$iSection_1 = _GUIExtender_Section_Create($hGUI, 0, 500)
; Add some controls so we can see which section is which
GUICtrlCreateLabel("", 0, 0, 500, 300)
GUICtrlSetBkColor(-1, 0xCCCCFF)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the BLUE section that is static", 0, 100, 300, 20)
; Create the button which automatically activates next section of the same GUI
_GUIExtender_Section_Activate($hGUI, $iSection_1 + 1, "", "", 470, 10, 20, 20)
; Create a button to action programatically a section of another GUI
$cSect_4 = GUICtrlCreateButton("Section 4", 10, 270, 80, 30)

$iSection_2 = _GUIExtender_Section_Create($hGUI, 500, 500)
GUICtrlCreateLabel("", 500, 0, 500, 300)
GUICtrlSetBkColor(-1, 0xFFCCCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the PINK section that opens and closes", 500, 100, 300, 20)

; Close section creation structure
_GUIExtender_Section_Create($hGUI, -99)

; Create  and position child GUI
$aGUI_Pos = WinGetPos($hGUI)
$hGUI_Child = GUICreate("Follower", 500, 200, 0, 0, BitOR($WS_POPUP, $WS_BORDER), 0, $hGUI)
WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
GUISetState(@SW_HIDE, $hGUI_Child)

; Create section sin child GUI
_GUIExtender_Init($hGUI_Child)

$iSection_3 = _GUIExtender_Section_Create($hGUI_Child, 0, 1)
; I am the RED section that is static
GUICtrlCreateLabel("", 0, 0, 500, 1)
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetState(-1, $GUI_DISABLE)

$iSection_4 = _GUIExtender_Section_Create($hGUI_Child, 1)
GUICtrlCreateLabel("", 0, 1, 500, 200)
GUICtrlSetBkColor(-1, 0xCCFFCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the Green section that opens and closes", 0, 100, 300, 20)
; Activate this section with no visible button
_GUIExtender_Section_Activate($hGUI_Child, $iSection_4)

; Close section creation structure
_GUIExtender_Section_Create($hGUI_Child, -99)

; Close extendable sections
_GUIExtender_Section_Action($hGUI, $iSection_2, False)
_GUIExtender_Section_Action($hGUI_Child, $iSection_4, False)
; And display the GUI(s)
GUISetState(@SW_SHOW, $hGUI)
GUISetState(@SW_SHOW, $hGUI_Child)

; Look for the main GUI moving
GUIRegisterMsg($WM_MOVE, "_WM_MOVE")

While 1

    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cSect_4
            ; Toggle the section in the child GUI programatically
            _GUIExtender_Section_Action($hGUI_Child, $iSection_4, 9)
    EndSwitch

    ; Pass main GUI handle and event message to the UDF so it can action its extendable section automatically
    _GUIExtender_EventMonitor($hGUI, $iMsg)

WEnd

Func _WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
    ; If the main GUI moves
    If $hWnd = $hGUI Then
        ; Move the child to follow
        Local $aGUI_Pos = WinGetPos($hWnd)
        WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
    EndIf
EndFunc   ;==>_WM_MOVE

Happy with that?

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#include "GUIExtender.au3"

; Create parent GUI
$hGUI = GUICreate("Store Build", 1000, 300)
GUISetState(@SW_HIDE, $hGUI)

; Create sections in main GUI
_GUIExtender_Init($hGUI, 1)


$iSection_1 = _GUIExtender_Section_Create($hGUI, 0, 500)

;~GUICtrlCreateLabel("", 0, 0, 500, 300) ; label wont work
;~GUICtrlSetBkColor(-1, 0xCCCCFF)  ; color wont apply
; Add some controls so we can see which section is which



$Group1 = GUICtrlCreateGroup("POS", 16, 8, 177, 49)
$Radio1 = GUICtrlCreateRadio("Fixed", 32, 32, 65, 17)
$Radio2 = GUICtrlCreateRadio("Tablet", 120, 32, 65, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hCombo = GUICtrlCreateCombo("", 304, 80, 37, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "");"sList1")
$Setting = GUICtrlCreateButton("Setting", 80, 224, 65, 25)
$Exit = GUICtrlCreateButton("Exit", 392, 224, 65, 25)
$Button3 = GUICtrlCreateButton("Expand", 8, 224, 65, 25)
$Input1 = GUICtrlCreateInput("", 208, 80, 57, 24)
GUICtrlSetLimit(-1,4) ; to limit the entry to 3 chars
GUICtrlSetTip(-1, "Enter Store Number")
$RE = GUICtrlCreateLabel("RE", 272, 80, 22, 24, $SS_SUNKEN)
$SREI = GUICtrlCreateLabel("SREI", 168, 80, 35, 28, BitOR($SS_CENTER,$SS_SUNKEN))
$Start = GUICtrlCreateButton("Start", 200, 120, 97, 33)





;GUICtrlCreateLabel("", 0, 0, 500, 300)
;GUICtrlSetBkColor(-1, 0xCCCCFF)
;GUICtrlSetState(-1, $GUI_DISABLE)
;GUICtrlCreateLabel("I am the BLUE section that is static", 0, 100, 300, 20)
; Create the button which automatically activates next section of the same GUI

_GUIExtender_Section_Activate($hGUI, $iSection_1 + 1, "", "", 470, 10, 20, 20)



; Create a button to action programatically a section of another GUI
$cSect_4 = GUICtrlCreateButton("Section 4", 10, 270, 80, 30)

$iSection_2 = _GUIExtender_Section_Create($hGUI, 500, 500)






GUICtrlCreateLabel("", 500, 0, 500, 300)
GUICtrlSetBkColor(-1, 0xFFCCCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the PINK section that opens and closes", 500, 100, 300, 20)

; Close section creation structure
_GUIExtender_Section_Create($hGUI, -99)





; Create  and position child GUI
$aGUI_Pos = WinGetPos($hGUI)
$hGUI_Child = GUICreate("Follower", 500, 200, 0, 0, BitOR($WS_POPUP, $WS_BORDER), 0, $hGUI)
WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
GUISetState(@SW_HIDE, $hGUI_Child)

; Create section sin child GUI
_GUIExtender_Init($hGUI_Child)

$iSection_3 = _GUIExtender_Section_Create($hGUI_Child, 0, 1)
; I am the RED section that is static
GUICtrlCreateLabel("", 0, 0, 500, 1)
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetState(-1, $GUI_DISABLE)

$iSection_4 = _GUIExtender_Section_Create($hGUI_Child, 1)
GUICtrlCreateLabel("", 0, 1, 500, 200)
GUICtrlSetBkColor(-1, 0xCCFFCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the Green section that opens and closes", 0, 100, 300, 20)
; Activate this section with no visible button
_GUIExtender_Section_Activate($hGUI_Child, $iSection_4)

; Close section creation structure
_GUIExtender_Section_Create($hGUI_Child, -99)

; Close extendable sections
_GUIExtender_Section_Action($hGUI, $iSection_2, False)
_GUIExtender_Section_Action($hGUI_Child, $iSection_4, False)
; And display the GUI(s)

$Group1 = GUICtrlCreateGroup("POS", 16, 8, 177, 49)
$Radio1 = GUICtrlCreateRadio("Fixed", 32, 32, 65, 17)
$Radio2 = GUICtrlCreateRadio("Tablet", 120, 32, 65, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hCombo = GUICtrlCreateCombo("", 304, 80, 37, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "");"sList1")
$Setting = GUICtrlCreateButton("Setting", 80, 224, 65, 25)
$Exit = GUICtrlCreateButton("Exit", 392, 224, 65, 25)
$Button3 = GUICtrlCreateButton("Expand", 8, 224, 65, 25)
$Input1 = GUICtrlCreateInput("", 208, 80, 57, 24)
GUICtrlSetLimit(-1,4) ; to limit the entry to 3 chars
GUICtrlSetTip(-1, "Enter Store Number")
$RE = GUICtrlCreateLabel("RE", 272, 80, 22, 24, $SS_SUNKEN)
$SREI = GUICtrlCreateLabel("SREI", 168, 80, 35, 28, BitOR($SS_CENTER,$SS_SUNKEN))
$Start = GUICtrlCreateButton("Start", 200, 120, 97, 33)






GUISetState(@SW_SHOW, $hGUI)


GUISetState(@SW_SHOW, $hGUI_Child)

; Look for the main GUI moving
GUIRegisterMsg($WM_MOVE, "_WM_MOVE")


; how do i access the control  $iMsg from each 3 menu


While 1

    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cSect_4
            ; Toggle the section in the child GUI programatically
            _GUIExtender_Section_Action($hGUI_Child, $iSection_4, 9)
    EndSwitch

    ; Pass main GUI handle and event message to the UDF so it can action its extendable section automatically
    _GUIExtender_EventMonitor($hGUI, $iMsg)

WEnd




Func _WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
    ; If the main GUI moves
    If $hWnd = $hGUI Then
        ; Move the child to follow
        Local $aGUI_Pos = WinGetPos($hWnd)
        WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
    EndIf
EndFunc   ;==>_WM_MOVE

hi Melba, i have  these issues below:

1. Main menu i can not apply the colour blue (if colour is  added the extender  arrow no longer work)

2. The extended menu pink i can not add  control in the menu

3. Bottom Menu is fine

4. How to access control for the 3 menus , can you provide an example  ( 3 while loop or one single one)

Edited by antonioj84
error
Link to post
Share on other sites
  • Moderators

antonioj84,

1. You forgot the line to disable the coloured label, so none of the other controls will work as AutoIt cannot tell which overlapped control you wish to action.

2. Just add them within the section creation structure as I have done in the amended example below.

3. You were reusing the same variable names that you used in the Blue section to store the ControlIDs for the controls in Green section. Hence you overwrote the Blue values and they no longer work. Just use different variable names - again as in the script below.

4. Just look for the ControlIDs as normal. Guess what? The example below shows you how to do it:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

#include "GUIExtender.au3"

; Create parent GUI
$hGUI = GUICreate("Store Build", 1000, 300)
GUISetState(@SW_HIDE, $hGUI)

; Create sections in main GUI
_GUIExtender_Init($hGUI, 1)


$iSection_1 = _GUIExtender_Section_Create($hGUI, 0, 500)

GUICtrlCreateLabel("", 0, 0, 500, 300)
GUICtrlSetBkColor(-1, 0xCCCCFF)
GUICtrlSetState(-1, $GUI_DISABLE) ; You need to disbale the lable - you forgot to move that line <<<<<<<<<<<<<<<<<<<<<
; Add some controls so we can see which section is which



$Group1 = GUICtrlCreateGroup("POS", 16, 8, 177, 49)
$Radio1 = GUICtrlCreateRadio("Fixed", 32, 32, 65, 17)
$Radio2 = GUICtrlCreateRadio("Tablet", 120, 32, 65, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hCombo = GUICtrlCreateCombo("", 304, 80, 37, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "");"sList1")
$Setting = GUICtrlCreateButton("Setting", 80, 224, 65, 25)
$Exit = GUICtrlCreateButton("Exit", 392, 224, 65, 25)
$Button3 = GUICtrlCreateButton("Expand", 8, 224, 65, 25)
$Input1 = GUICtrlCreateInput("", 208, 80, 57, 24)
GUICtrlSetLimit(-1,4) ; to limit the entry to 3 chars
GUICtrlSetTip(-1, "Enter Store Number")
$RE = GUICtrlCreateLabel("RE", 272, 80, 22, 24, $SS_SUNKEN)
$SREI = GUICtrlCreateLabel("SREI", 168, 80, 35, 28, BitOR($SS_CENTER,$SS_SUNKEN))
$Start = GUICtrlCreateButton("Start", 200, 120, 97, 33)

_GUIExtender_Section_Activate($hGUI, $iSection_1 + 1, "", "", 470, 10, 20, 20)

; Create a button to action programatically a section of another GUI
$cSect_4 = GUICtrlCreateButton("Section 4", 10, 270, 80, 30)

$iSection_2 = _GUIExtender_Section_Create($hGUI, 500, 500)

GUICtrlCreateLabel("", 500, 0, 500, 300)
GUICtrlSetBkColor(-1, 0xFFCCCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the PINK section that opens and closes", 500, 100, 300, 20)

; Add a control in the pink section <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$cPink_Button = GUICtrlCreateButton("Pink Test", 510, 10, 80, 30)

; Close section creation structure
_GUIExtender_Section_Create($hGUI, -99)

; Create  and position child GUI
$aGUI_Pos = WinGetPos($hGUI)
$hGUI_Child = GUICreate("Follower", 500, 200, 0, 0, BitOR($WS_POPUP, $WS_BORDER), 0, $hGUI)
WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
GUISetState(@SW_HIDE, $hGUI_Child)

; Create section sin child GUI
_GUIExtender_Init($hGUI_Child)

$iSection_3 = _GUIExtender_Section_Create($hGUI_Child, 0, 1)
; I am the RED section that is static
GUICtrlCreateLabel("", 0, 0, 500, 1)
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetState(-1, $GUI_DISABLE)

$iSection_4 = _GUIExtender_Section_Create($hGUI_Child, 1)
GUICtrlCreateLabel("", 0, 1, 500, 200)
GUICtrlSetBkColor(-1, 0xCCFFCC)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("I am the Green section that opens and closes", 0, 100, 300, 20)
; Activate this section with no visible button
_GUIExtender_Section_Activate($hGUI_Child, $iSection_4)

; Close section creation structure
_GUIExtender_Section_Create($hGUI_Child, -99)

; Close extendable sections
_GUIExtender_Section_Action($hGUI, $iSection_2, False)
_GUIExtender_Section_Action($hGUI_Child, $iSection_4, False)
; And display the GUI(s)

$Child_Group1 = GUICtrlCreateGroup("POS", 16, 8, 177, 49) ; You must use different variables to store the ControlIDS or you overwrite the earlier controls <<<<<<<<<<<<<<<
$Child_Radio1 = GUICtrlCreateRadio("Fixed", 32, 32, 65, 17)
$Child_Radio2 = GUICtrlCreateRadio("Tablet", 120, 32, 65, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hChild_Combo = GUICtrlCreateCombo("", 304, 80, 37, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "");"sList1")
$Child_Setting = GUICtrlCreateButton("Setting", 80, 224, 65, 25)
$Child_Exit = GUICtrlCreateButton("Exit", 392, 224, 65, 25)
$Child_Button3 = GUICtrlCreateButton("Expand", 8, 224, 65, 25)
$Child_Input1 = GUICtrlCreateInput("", 208, 80, 57, 24)
GUICtrlSetLimit(-1,4) ; to limit the entry to 3 chars
GUICtrlSetTip(-1, "Enter Store Number")
$Child_RE = GUICtrlCreateLabel("RE", 272, 80, 22, 24, $SS_SUNKEN)
$Child_SREI = GUICtrlCreateLabel("SREI", 168, 80, 35, 28, BitOR($SS_CENTER,$SS_SUNKEN))
$Child_Start = GUICtrlCreateButton("Start", 200, 120, 97, 33)

GUISetState(@SW_SHOW, $hGUI)
GUISetState(@SW_SHOW, $hGUI_Child)

; Look for the main GUI moving
GUIRegisterMsg($WM_MOVE, "_WM_MOVE")


; how do i access the control  $iMsg from each 3 menu ; Just as you would normally <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


While 1

    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cSect_4
            ; Toggle the section in the child GUI programatically
            _GUIExtender_Section_Action($hGUI_Child, $iSection_4, 9)
        Case $Start
            MsgBox($MB_SYSTEMMODAL, "Hi", "Start button in blue section pressed")
        Case $Child_Start
            MsgBox($MB_SYSTEMMODAL, "Hi", "Start button in green section pressed")
        Case $cPink_Button
            MsgBox($MB_SYSTEMMODAL, "Hi", "Test button in pink section pressed")
    EndSwitch

    ; Pass main GUI handle and event message to the UDF so it can action its extendable section automatically
    _GUIExtender_EventMonitor($hGUI, $iMsg)

WEnd




Func _WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
    ; If the main GUI moves
    If $hWnd = $hGUI Then
        ; Move the child to follow
        Local $aGUI_Pos = WinGetPos($hWnd)
        WinMove($hGUI_Child, "", $aGUI_Pos[0], $aGUI_Pos[1] + $aGUI_Pos[3])
    EndIf
EndFunc   ;==>_WM_MOVE

Look for the <<<<<<< lines.

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Moderators

antonioj84,

That is nothing to do with my UDF. Just use GUICtrlRead on the controls you use to set the required values, concatenate them, and then add the resulting string to the control in the Green section. You created all of these controls inside your script so you can read and write to them as normal.

If you want more help then post the script you are using so I do not have to write one.

M23

P.S. And I have moved your last post to your existing GUIExtender help thread as it has nothing to do with the UDF.

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:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • 2 months later...

i am wondering does the GUI Extender support borderless GUI, i am trying to hack your code  to no success, the closest i got..  the bottom of the GUI  will be borderless, more in particular the Gui above post #11, i want  top to be borderless

#include <GuiconstantsEx.au3>
#include <WindowsConstants.au3>
#include <SendMessage.au3>

Global Const $SC_DRAGMOVE = 0xF012

HotKeySet("{ESC}", "On_Exit")
Func On_Exit()
    Exit
EndFunc

$hGUI = GUICreate("X", 50, 50, -1, -1, BitOR($WS_POPUP,$WS_BORDER), $WS_EX_TOPMOST)
GUISetBkColor(0xFF0000, $hGUI)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_PRIMARYDOWN
            _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
    EndSwitch
WEnd

 

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By XGamerGuide
      I'm trying to assign a faint text in the background to an input field that disappears after the input has started. This should have a certain color such as gray.
    • By Bruceway
      Hi All, 
      I am trying to mark out the middle square of this Magnify Routine "window on right" (stolen from M23 - Thanks) - I assume the DllCall is overwriting the boxes. But wherever I try and redraw, they won't stay on the Magnify Window. Can anyone advise, bet way to keep boxes around the middle square.
      Please be kind with my code, it is ripped from a MUCH bigger exe.
      The "half" transparent window, is for dragging to where you want it, and the buttons are for more precise placement.
      #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPI.au3> Global $hMag_GUI, $hMagDC, $hDeskDC, $hPen, $oObj, $aWinPos[2], $iLast_Mouse_X = 0, $iLast_Mouse_Y = 0 Global $pWindowCaptureX, $pWindowCaptureY Global $pWindowMagWinX, $pWindowMagWinY #Region - GUI3 ; *** Grabber/Picker Window Global $hGUI3 = GUICreate("Capture", 150, 150, $pWindowCaptureX, $pWindowCaptureY, $WS_EX_TOOLWINDOW) Global $Pic1 = GUICtrlCreatePic("", 70, 40, 10, 10, BitOR($GUI_SS_DEFAULT_PIC,$WS_BORDER)) Global $hButtonUp = GUICtrlCreateButton("U", 65, 60, 20, 20) Global $hButtonDown = GUICtrlCreateButton("D", 65, 100, 20, 20) Global $hButtonLeft = GUICtrlCreateButton("L", 40, 80, 20, 20) Global $hButtonRight = GUICtrlCreateButton("R", 90, 80, 20, 20) Global $hButtonOK = GUICtrlCreateButton("OK", 60, 80, 30, 20) #EndRegion - GUI3 #Region - GUI4 Global $hGUI4 = GUICreate("MagWin", 250, 250, 325, 195) Global $hButtonMOK = GUICtrlCreateButton("OK", 45, 140, 30, 20) Global $hButtonMUp = GUICtrlCreateButton("U", 50, 120, 20, 20) Global $hButtonMDown = GUICtrlCreateButton("D", 50, 160, 20, 20) Global $hButtonMLeft = GUICtrlCreateButton("L", 25, 140, 20, 20) Global $hButtonMRight = GUICtrlCreateButton("R", 75, 140, 20, 20) Global $hLabelWindow = GUICtrlCreateLabel("Window", 5, 185, 44, 15) Global $hLabelWindowText = GUICtrlCreateLabel("", 60, 185, 176, 15) Global $hLabelCheck = GUICtrlCreateLabel("Check", 5, 205, 44, 15) Global $hLabelCheckText = GUICtrlCreateLabel("", 60, 205, 176, 15) Global $hLabelScreen = GUICtrlCreateLabel("Screen", 5, 225, 44, 15) Global $hLabelScreenText = GUICtrlCreateLabel("", 60, 225, 176, 15) #EndRegion - GUI4 ;GUISetState(@SW_HIDE, $hGUI1) GUISetState(@SW_SHOW, $hGUI3) GUISetState(@SW_SHOW, $hGUI4) WinSetTrans($hGUI3, "", 100) $hMag_GUI = WinGetHandle("MagWin") ; Get device context for Mag GUI $hMagDC = _WinAPI_GetDC($hMag_GUI) If @error Then Exit ; Get device context for desktop $hDeskDC = _WinAPI_GetDC(0) If @error Then _WinAPI_ReleaseDC($hMag_GUI, $hMagDC) Exit EndIf ; Create pen $hPen = _WinAPI_CreatePen($PS_SOLID, 5, 0x7E7E7E) $oObj = _WinAPI_SelectObject($hMagDC, $hPen) ; Loop until the user exits. ; *** Static Window While 1 ; Reset position Local $aWinPos = WinGetPos("Capture") If $aWinPos[0] <> $iLast_Mouse_X Or $aWinPos[1] <> $iLast_Mouse_Y Then ; Redraw Mag GUI _FOEA_Loupe($aWinPos) ;~ Local $TWPx = $aWinPos[0]+81 ;+81 Top Left Corner; +85 Middle ;~ Local $TWPy = $aWinPos[1]+75 ;+75 Top Left Corner; +80 Middle ;~ ;*** WINDOW COORDS = x+81 & y+75 (top left of picker square) GUISetState(@SW_HIDE, $hGUI3) Local $output1 = PixelCheckSum($aWinPos[0]+81, $aWinPos[1]+75, $aWinPos[0]+91, $aWinPos[1]+85) Local $output2 = PixelCheckSum($aWinPos[0]+73, $aWinPos[1]+66, $aWinPos[0]+83, $aWinPos[1]+76) If $aWinPos[0] < 1440 Then GUICtrlSetData($hLabelWindowText, $aWinPos[0]+81 & "(" & $aWinPos[0]+81+1440 &")," & $aWinPos[1]+75 & " : " & $output1) GUICtrlSetData($hLabelCheckText, $aWinPos[0]+73 & "(" & $aWinPos[0]+73+1440 & ")," & $aWinPos[1]+66 & " : " & $output2) GUICtrlSetData($hLabelScreenText, "W: " & $aWinPos[0]+73 & "(" & $aWinPos[0]+73+1440 &")," & $aWinPos[1]+66 & " C: " & $aWinPos[0]+81 & "," & $aWinPos[1]+75) Else GUICtrlSetData($hLabelWindowText, $aWinPos[0]+81-1440 & "(" & $aWinPos[0]+81 &")," & $aWinPos[1]+75 & " : " & $output1) GUICtrlSetData($hLabelCheckText, $aWinPos[0]+89-1440 & "(" & $aWinPos[0]+89 &")," & $aWinPos[1]+84 & " : " & $output2) GUICtrlSetData($hLabelScreenText, "W: " & $aWinPos[0]+73-1440 & "(" & $aWinPos[0]+73 & ")," & $aWinPos[1]+66 & " C: " & $aWinPos[0]+81 & "," & $aWinPos[1]+75) ;GUICtrlSetData($hLabel2, $aWinPos[1]+75) EndIf GUISetState(@SW_SHOW, $hGUI3) $iLast_Mouse_X = $aWinPos[0] $iLast_Mouse_Y = $aWinPos[1] $pWindowCaptureX = $aWinPos[0] $pWindowCaptureY = $aWinPos[1] ; *** Box ; Tried it here - doesn't work ;~ Global $Graphic = GUICtrlCreateGraphic(176, 55, 2, 20) ;~ Global $Graphic = GUICtrlCreateGraphic(194, 55, 2, 20) ;~ Global $Graphic = GUICtrlCreateGraphic(176, 55, 20, 2) ;~ Global $Graphic = GUICtrlCreateGraphic(176, 73, 20, 2) ;~ Global $Graphic = GUICtrlCreateGraphic(0, 0, 1, 1) EndIf Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Local $aWinPos = WinGetPos("MagWin") $pWindowMagWinX = $aWinPos[0] $pWindowMagWinY = $aWinPos[1] ;GUISetState(@SW_HIDE, $hGUI3) GUIDelete($hGUI3) ; Clear up Mag GUI _WinAPI_SelectObject($hMagDC, $oObj) _WinAPI_DeleteObject($hPen) _WinAPI_ReleaseDC(0, $hDeskDC) _WinAPI_ReleaseDC($hMag_GUI, $hMagDC) ;GUISetState(@SW_HIDE, $hMag_G GUIDelete($hGUI4) GUIDelete($hMag_GUI) ExitLoop Case $hButtonMOK GUISetState(@SW_HIDE, $hGUI3) Local $aWinPos = WinGetPos("Capture") Local $TWPx = $aWinPos[0]+81 ;+81 Top Left Corner; +85 Middle Local $TWPy = $aWinPos[1]+75 ;+75 Top Left Corner; +80 Middle ;*** WINDOW COORDS = x+81 & y+75 (top left of picker square) If $aWinPos[0] > 1440 Then $aWinPos[0] = $aWinPos[0]-1440 $TWPx = $TWPx-1440 EndIf Local $output0 = PixelCheckSum($TWPx-8, $TWPy-9, $TWPx-8+10, $TWPy+1) ;_FOEA_WinAPI_DrawRect(LRChecksum($TWPx-8), $TWPy-9, LRChecksum($TWPx-8)+10, $TWPy+1, 0xFFFFFF, 50) MsgBox($MB_SYSTEMMODAL, "Results ", _ "Window Coords" & @CRLF & _ $TWPx & "(" & $TWPx+1440 & "), " & $TWPy & @CRLF & _ "Checksum0: " & $output0 & @CRLF) GUISetState(@SW_SHOW, $hGUI3) WinActivate($hGUI3, "Capture") Case $hButtonMUp _FOEA_ButtonMUp() Case $hButtonMDown _FOEA_ButtonMDown() Case $hButtonMRight _FOEA_ButtonMRight() Case $hButtonMLeft _FOEA_ButtonMLeft() EndSwitch WEnd Func _FOEA_Loupe($aWinPos) Local $iX, $iY DllCall("gdi32.dll", "int", "StretchBlt", _ "int", $hMagDC, "int", 10, "int", 10, "int", 110, "int", 110, _ "int", $hDeskDC, "int", $aWinPos[0]+68, "int", $aWinPos[1]+61, "int", 20, "int", 20, _ "long", $SRCCOPY) DllCall("gdi32.dll", "int", "StretchBlt", _ "int", $hMagDC, "int", 130, "int", 10, "int", 110, "int", 110, _ "int", $hDeskDC, "int", $aWinPos[0]+70, "int", $aWinPos[1]+63, "int", 7, "int", 7, _ "long", $SRCCOPY) ; Appears initially - then disappears... Global $Graph1 = GUICtrlCreateGraphic(170, 57, 8, 16, $SS_WHITERECT) Global $Graph2 = GUICtrlCreateGraphic(170, 73, 31, 8, $SS_WHITERECT) Global $Graph3 = GUICtrlCreateGraphic(193, 57, 8, 16, $SS_WHITERECT) Global $Graph4 = GUICtrlCreateGraphic(170, 49, 31, 8, $SS_WHITERECT) ; This apears to be needed to stop the Magnify window moving Global $Graph5 = GUICtrlCreateGraphic(0, 0, 1, 1) ;Tried this too - no difference GUISetState(@SW_SHOW, $Graph1) GUISetState(@SW_SHOW, $Graph2) GUISetState(@SW_SHOW, $Graph3) GUISetState(@SW_SHOW, $Graph4) EndFunc ;==>Loupe Func _FOEA_ButtonMUp() Local $aWinPos = WinGetPos("Capture") WinMove($hGUI3, "Capture", $aWinPos[0], $aWinPos[1]-1) EndFunc Func _FOEA_ButtonMDown() Local $aWinPos = WinGetPos("Capture") WinMove($hGUI3, "Capture", $aWinPos[0], $aWinPos[1]+1) EndFunc Func _FOEA_ButtonMRight() Local $aWinPos = WinGetPos("Capture") WinMove($hGUI3, "Capture", $aWinPos[0]+1, $aWinPos[1]) EndFunc Func _FOEA_ButtonMLeft() Local $aWinPos = WinGetPos("Capture") WinMove($hGUI3, "Capture", $aWinPos[0]-1, $aWinPos[1]) EndFunc  
    • By XGamerGuide
      I'm trying to display a GIF. However, the GUI should not be visible. Here is an attempt that doesn't work:
      $sGIF = "MyGIF.gif" #Include <IE.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WINAPI.au3> #include <SendMessage.au3> Global Const $SC_DRAGMOVE = 0xF012 HotKeySet("{ESC}", "_Exit") $hGui = GUICreate("Test", 400, 300, -1, -1, $WS_POPUP, $WS_EX_LAYERED) GUISetBkColor(0xABCDEF) $oIE = _IECreateEmbedded() GUICtrlCreateObj($oIE, 10, 10, 380, 280) _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 250) _IENavigate($oIE, $sGIF) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_PRIMARYDOWN _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0) EndSwitch WEnd Func _Exit() Exit  
    • By kcvinu
      Hi all,
      I am creating a GUI library in Nim with win32 API functions. Even though the syntax is similar to Python, coding is almost similar to C in Nim. 
      I can change the back color of the button in NM_CUSTOMDRAW. But I can't change the button text color. here is my pseudo code.  
      proc setBtnBackColor*(me : Button, lp: LPNMCUSTOMDRAW ) = if lp.uItemState and CDIS_SELECTED : #------------------ btn clicked # Here i am changing the button color with SelectObject & FillRect. elif lp.uItemState and CDIS_HOT : # ----------------Mouse over # Here i am changing the button's mouse hover color with SelectObject & FillRect. else: # -------------------------Default color set # Here i am changing the button's default color with SelectObject & FillRect. # Here i tried---> SetTextColor(lp.hdc, RGB(102, 255, 51) ) #------- But no luck. #------------------------------------------------------------------------- Please guide me. What i am doing wrong here ?  I am returning "CDRF_SKIPDEFAULT" after calling this function.
      Note : I am using subclassed button. So when the parent window receives WM_NOTIFY message, it sends that to my button's WndProc. There i am handling the message.
    • By paw
      I use SetSoundDevice to control my audio devices but the UI was either
       
      blurry like this:
      or unusable like this:

      so I made this horrible thing to add scaling to the GUI:
      #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Change2CUI=y #AutoIt3Wrapper_Res_HiDpi=y #AutoIt3Wrapper_AU3Check_Parameters=-w 3 -w 4 -w 5 #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/sf /sv /rm #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <File.au3> ;~ _convertGUI("") If $CmdLine[0] <> 0 Then _convertGUI($CmdLine[1]) Func _convertGUI($sFilePath) If $sFilePath <> "" Then Local $aArray = FileReadToArray($sFilePath) Else ;TEST DATA Local $aArray[6] = ['$H_Res_Language = GUICtrlCreateProgress(5, 120, 210 + 25, 480, 20, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE)) ; $CBS_DROPDOWNLIST)', _ 'Local $h_Ok = GUICtrlCreateButton("Ok", 72, 224, 81, 33, 0)', _ 'GUICreate($Warning_TiTle, 700, 310, -1, -1, $WS_SIZEBOX + $WS_SYSMENU + $WS_MINIMIZEBOX)', _ 'GUICtrlCreateLabel("Output type: ", 30, 130, 65, 20) ;, $SS_RIGHT)', _ '$H_FieldNameEdit = GUICtrlCreateEdit($INP_FieldNameEdit, 100,260+25, 500, 150 - 25) ;comment', 'Local $H_CANCEL = GUICtrlCreateGraphic("Cancel", 224, 224, 97, 33, 0)'] EndIf Local $hTimer = TimerInit(), $iGUIElementCount = 0, $sResult = "", $sFileName = "", $sDrive = "", $sDir = "", $sExtension = "" If @Compiled Then _PathSplit($sFilePath, $sDrive, $sDir, $sFileName, $sExtension) $sFileName = StringRegExpReplace($sFilePath, "^.*\\", "") EndIf For $i = 0 To (UBound($aArray) - 1) If StringRegExp($aArray[$i], "GUICtrlCreate|GUICreate") Then $sResult = _splitComma($aArray[$i]) If Not @error Then $aArray[$i] = $sResult $iGUIElementCount += 1 EndIf Next ConsoleWrite("t = " & TimerDiff($hTimer) & " GUI elements = " & $iGUIElementCount & " lines = " & (UBound($aArray) - 1) & @CRLF) If $sFileName <> "" Then Local $hFile = FileOpen("edited." & $sFileName, 2) _FileWriteFromArray("edited." & $sFileName, $aArray) FileClose($hFile) EndIf Exit EndFunc ;==>_convertGUI Func _splitComma($sString) Local $sSplitResult = "", $sTrimmedR = "", $sTrimmedL = "" Local $aSplit = StringSplit($sString, ',') If Not @error Then $sTrimmedR = "" $sTrimmedL = "" For $j = 1 To $aSplit[0] If StringRegExp($aSplit[1], "(?:.GUICtrlCreateGraphic|GUICtrlCreateProgress|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTreeView)") Then If $j = 1 Then While StringLeft($aSplit[$j], 1) <> '(' $sTrimmedL &= StringLeft($aSplit[$j], 1) $aSplit[$j] = StringTrimLeft($aSplit[$j], 1) WEnd $aSplit[$j] = StringTrimLeft($aSplit[$j], 1) EndIf EndIf If $j = $aSplit[0] Then While StringRight($aSplit[$j], 1) <> ')' $sTrimmedR &= StringRight($aSplit[$j], 1) $aSplit[$j] = StringTrimRight($aSplit[$j], 1) WEnd $aSplit[$j] = StringTrimRight($aSplit[$j], 1) EndIf If StringRegExp($aSplit[$j], "[0-9]") And $aSplit[$j] <> -1 And $aSplit[$j] <> 0 And $aSplit[$j] <> 1 And Not StringInStr($aSplit[$j], ')') Then If StringRegExp($aSplit[$j], "\-|\+") Then ;put parenthesis around + or - $aSplit[$j] = '(' & $aSplit[$j] & ")*$g_DPI" Else $aSplit[$j] = $aSplit[$j] & "*$g_DPI" EndIf EndIf If $j < $aSplit[0] Then $sSplitResult &= $aSplit[$j] & ',' ElseIf $j = $aSplit[0] Then $sSplitResult &= $aSplit[$j] & ')' Else $sSplitResult &= $aSplit[$j] EndIf Next If $sTrimmedR <> "" Then $sSplitResult &= StringReverse($sTrimmedR) If $sTrimmedL <> "" Then $sSplitResult = $sTrimmedL & '(' & $sSplitResult Else SetError(1) Return EndIf ConsoleWrite($sSplitResult & @CRLF) Return $sSplitResult EndFunc ;==>_splitComma
      And now it looks good: 
      but it doesn't work on everything, for example the "GUICtrlCreateLabel("Output type: ", 30, 130, 65, 20) ;, $SS_RIGHT)" (from the autoit3wrapper gui)
      because the comment contains a parenthesis and it would break completely if there were variables as parameters..
      Is there some kind of parser around that I could use instead or maybe someone who has already done something like this?
×
×
  • Create New...