Jump to content
antonioj84

GuiExtender problem

Recommended Posts

antonioj84
#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

Share this post


Link to post
Share on other sites
Melba23

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

 

Share this post


Link to post
Share on other sites
antonioj84

Hey Melba here you go,  this what I mean a picture worth a thousand word. Thanks for opening the thread lesson learned. I can toggle 

2menuCapture.JPG

Edited by antonioj84
add

Share this post


Link to post
Share on other sites
Melba23

antonioj84,

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

M23

  • Like 1

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

 

Share this post


Link to post
Share on other sites
antonioj84
#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

Share this post


Link to post
Share on other sites
antonioj84

interactivityCapture.JPG

Share this post


Link to post
Share on other sites
Melba23

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
  • Like 1

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

 

Share this post


Link to post
Share on other sites
antonioj84

thanks Melba23

Share this post


Link to post
Share on other sites
antonioj84

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

Share this post


Link to post
Share on other sites
Melba23

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

  • Like 1

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

 

Share this post


Link to post
Share on other sites
Melba23

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

  • Like 1

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

 

Share this post


Link to post
Share on other sites
antonioj84

Hi Melba, you made my day. Just the Doctor prescribed, I am happy !!

Share this post


Link to post
Share on other sites
antonioj84
#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

Share this post


Link to post
Share on other sites
Melba23

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

  • Like 1

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

 

Share this post


Link to post
Share on other sites
antonioj84

Thanks Melba,  I am good to go

Share this post


Link to post
Share on other sites
antonioj84

hi there Melba,

i am almost there, your UdF is very helpful

i am not able to pass value from the blue menu to the green menu otherwise i can send value directly to green . can you show me an example

 

thanks

 

passingDataCapture.JPG

Share this post


Link to post
Share on other sites
Melba23

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

 

Share this post


Link to post
Share on other sites
antonioj84

hi Melba,

Great to know, let me try to figure it out.

Thanks

 

 

Share this post


Link to post
Share on other sites
antonioj84

Hi Melba,

you are correct, thanks  so much for  the assistance.

Share this post


Link to post
Share on other sites
antonioj84

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

 

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

  • Similar Content

    • UEZ
      By UEZ
      Following script shows a parent GUI with a child GUI initialized as MDICHILD.
      #include <Constants.au3> #include <GUIConstantsEx.au3> #include <GuiReBar.au3> #include <GuiScrollBars.au3> #include <GuiToolbar.au3> #include <ScreenCapture.au3> #include <ScrollBarConstants.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global Enum $idNew = 1000, $idOpen, $idSave, $idHelper Global Const $iImageW = @DesktopWidth, $iImageH = @DesktopHeight Global Const $hBMP_ScreenCapture = _ScreenCapture_Capture("", 0, 0, $iImageW, $iImageH, False) Global Const $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBMP_ScreenCapture) Sleep(50) Global Const $iW = 1500, $iH = 700, $SC_DRAGMOVE = 0xF012 Global Const $hGUI = GUICreate("Move child GUI within GUI", $iW, $iH) Global Const $hToolbar = _GUICtrlToolbar_Create($hGUI) Global Const $hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS)) Global Const $height_delta = 37 Global Const $idPic = GUICtrlCreatePic("", 0, $height_delta + 2, $iW, $iH) Global $hBitmap_tmp, $hHBitmap_tmp $hBitmap_tmp = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Global $hGfx_Context = _GDIPlus_ImageGetGraphicsContext($hBitmap_tmp) _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR) _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW) _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN) _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE) _GUICtrlToolbar_AddButtonSep($hToolbar) _GUICtrlToolbar_AddButton($hToolbar, $idHelper, $STD_HELP) _GUICtrlRebar_AddToolBarBand($hReBar, $hToolbar, "", 0) Global Const $iVSscroll = _WinAPI_GetSystemMetrics(2) Global Const $iHSscroll = _WinAPI_GetSystemMetrics(3) Global Const $iYCaption = _WinAPI_GetSystemMetrics(4) Global Const $iYFixedFrame = _WinAPI_GetSystemMetrics(8) Global Const $iXFixedFrame = _WinAPI_GetSystemMetrics(7) Global Const $iMetricsSumX = $iVSscroll + $iXFixedFrame * 2 Global Const $iMetricsSumY = $iHSscroll + $iYCaption + $iYFixedFrame _GUIScrollBars_Init($hGUI) _GUIScrollBars_SetScrollInfoMin($hGUI, $SB_HORZ, 0) _GUIScrollBars_SetScrollInfoMax($hGUI, $SB_HORZ, $iImageW - $iW + 61 + $iMetricsSumX) _GUIScrollBars_SetScrollInfoMin($hGUI, $SB_VERT, 0) _GUIScrollBars_SetScrollInfoMax($hGUI, $SB_VERT, $iImageH - $iH + $iMetricsSumY + $height_delta - 1) GUISetState(@SW_SHOW, $hGUI) Global Const $STM_SETIMAGE = 0x0172 _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP_ScreenCapture)) Global $IE_offset_x = 0, $IE_offset_y = 0 DrawImage($hGfx_Context, $hBitmap, $IE_offset_x, $IE_offset_y, $iW, $iH) GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL_IE") GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL_IE") Global $iPosX_Crop = 0, $iPosY_Crop = 0, $iW_crop = 200, $iH_crop = 200, $bMove_Crop = True Global $hGUI_IE_Crop = GUICreate("", $iW_crop, $iH_crop, $iPosX_Crop, $iPosY_Crop) GUISetStyle(BitOR($WS_BORDER, $WS_POPUP), $WS_EX_MDICHILD) _WinAPI_SetParent($hGUI_IE_Crop, $hGUI) WinSetTrans($hGUI_IE_Crop, "", 0xA0) Global $iLable_CropMove = GUICtrlCreateLabel("", 0, 0, $iW_crop, $iH_crop, -1, $GUI_WS_EX_PARENTDRAG) GUISetState(@SW_SHOW, $hGUI_IE_Crop) GUIRegisterMsg($WM_MOVE, "WM_MOVE_IE_GUI_Crop") ;~ GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN") Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch Until False GUIRegisterMsg($WM_HSCROLL, "") GUIRegisterMsg($WM_VSCROLL, "") GUIRegisterMsg($WM_MOVE, "") GUIRegisterMsg($WM_LBUTTONDOWN, "") _WinAPI_DeleteObject($hBMP_ScreenCapture) _GDIPlus_BitmapDispose($hBitmap_tmp) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGfx_Context) _GDIPlus_Shutdown() Exit Func WM_HSCROLL_IE($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $lParam Local $Min, $Max, $Page, $TrackPos ; Get all the horizontal scroll bar information Local $tSCROLLINFO_X = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_HORZ) $Min = DllStructGetData($tSCROLLINFO_X, "nMin") $Max = DllStructGetData($tSCROLLINFO_X, "nMax") $Page = DllStructGetData($tSCROLLINFO_X, "nPage") ; Save the position for comparison later on $IE_offset_x = DllStructGetData($tSCROLLINFO_X, "nPos") $TrackPos = DllStructGetData($tSCROLLINFO_X, "nTrackPos") #forceref $Min, $Max Local $nScrollCode = BitAND($wParam, 0x0000FFFF) Switch $nScrollCode Case $SB_LINELEFT ; user clicked left arrow DllStructSetData($tSCROLLINFO_X, "nPos", $IE_offset_x - 1) Case $SB_LINERIGHT ; user clicked right arrow DllStructSetData($tSCROLLINFO_X, "nPos", $IE_offset_x + 1) Case $SB_PAGELEFT ; user clicked the scroll bar shaft left of the scroll box DllStructSetData($tSCROLLINFO_X, "nPos", $IE_offset_x - $Page) Case $SB_PAGERIGHT ; user clicked the scroll bar shaft right of the scroll box DllStructSetData($tSCROLLINFO_X, "nPos", $IE_offset_x + $Page) Case $SB_THUMBTRACK ; user dragged the scroll box DllStructSetData($tSCROLLINFO_X, "nPos", $TrackPos) EndSwitch DllStructSetData($tSCROLLINFO_X, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO_X) $IE_offset_x = DllStructGetData($tSCROLLINFO_X, "nPos") DrawImage($hGfx_Context, $hBitmap, $IE_offset_x, $IE_offset_y, $iW, $iH) $hHBitmap_tmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_tmp) _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBitmap_tmp)) _WinAPI_DeleteObject($hHBitmap_tmp) $bMove_Crop = False ConsoleWrite($iPosX_Crop & ", " & $iPosY_Crop & " / " & $IE_offset_x & ", " & $IE_offset_y & @CRLF) WinMove($hGUI_IE_Crop, "", -$IE_offset_x + $iPosX_Crop, -$IE_offset_y + $iPosY_Crop) ;~ DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $hGUI_IE_Crop, "int", -$IE_offset_x + $iPosX_Crop, "int", -$IE_offset_y + $iPosY_Crop, "int", $iW_crop, "int", $iH_crop, "bool", True) $bMove_Crop = True Return "GUI_RUNDEFMSG" EndFunc ;==>WM_HSCROLL_IE Func WM_VSCROLL_IE($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $lParam Local $Min, $Max, $Page, $TrackPos ;~ ; Get all the horizontal scroll bar information Local $tSCROLLINFO_Y = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT) $Min = DllStructGetData($tSCROLLINFO_Y, "nMin") $Max = DllStructGetData($tSCROLLINFO_Y, "nMax") $Page = DllStructGetData($tSCROLLINFO_Y, "nPage") ; Save the position for comparison later on $IE_offset_y = DllStructGetData($tSCROLLINFO_Y, "nPos") $TrackPos = DllStructGetData($tSCROLLINFO_Y, "nTrackPos") #forceref $Min, $Max Local $nScrollCode = BitAND($wParam, 0x0000FFFF) Switch $nScrollCode Case $SB_LINELEFT ; user clicked left arrow DllStructSetData($tSCROLLINFO_Y, "nPos", $IE_offset_y - 1) Case $SB_LINERIGHT ; user clicked right arrow DllStructSetData($tSCROLLINFO_Y, "nPos", $IE_offset_y + 1) Case $SB_PAGELEFT ; user clicked the scroll bar shaft left of the scroll box DllStructSetData($tSCROLLINFO_Y, "nPos", $IE_offset_y - $Page) Case $SB_PAGERIGHT ; user clicked the scroll bar shaft right of the scroll box DllStructSetData($tSCROLLINFO_Y, "nPos", $IE_offset_y + $Page) Case $SB_THUMBTRACK ; user dragged the scroll box DllStructSetData($tSCROLLINFO_Y, "nPos", $TrackPos) EndSwitch DllStructSetData($tSCROLLINFO_Y, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO_Y) $IE_offset_y = DllStructGetData($tSCROLLINFO_Y, "nPos") DrawImage($hGfx_Context, $hBitmap, $IE_offset_x, $IE_offset_y, $iW, $iH) $bMove_Crop = False ConsoleWrite($iPosX_Crop & ", " & $iPosY_Crop & " / " & $IE_offset_x & ", " & $IE_offset_y & @CRLF) WinMove($hGUI_IE_Crop, "", -$IE_offset_x + $iPosX_Crop, -$IE_offset_y + $iPosY_Crop) ;~ DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $hGUI_IE_Crop, "int", -$IE_offset_x + $iPosX_Crop, "int", -$IE_offset_y + $iPosY_Crop, "int", $iW_crop, "int", $iH_crop, "bool", True) $bMove_Crop = True Return "GUI_RUNDEFMSG" EndFunc ;==>WM_VSCROLL_IE Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam) _SendMessage($hGUI_IE_Crop, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0) EndFunc ;==>_WM_LBUTTONDOWN Func WM_MOVE_IE_GUI_Crop($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $wParam If $hWnd = $hGUI_IE_Crop And $bMove_Crop Then $iPosX_Crop = _WinAPI_LoWord($lParam) $iPosY_Crop = _WinAPI_HiWord($lParam) EndIf Return "GUI_RUNDEFMSG" EndFunc ;==>WM_MOVE_IE_GUI_Crop Func WM_SIZE_IE_GUI_Crop($hWnd, $iMsg, $wParam, $lParam) Return $GUI_RUNDEFMSG EndFunc ;==>WM_SIZE_IE_GUI_Crop Func DrawImage($hGfx_Context, $hBitmap, $IE_offset_x, $IE_offset_y, $iW, $iH) _GDIPlus_GraphicsDrawImageRectRect($hGfx_Context, $hBitmap, $IE_offset_x, $IE_offset_y, $iW, $iH, 0, 0, $iW, $iH) $hHBitmap_tmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_tmp) _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBitmap_tmp)) _WinAPI_DeleteObject($hHBitmap_tmp) EndFunc  
      My problem: if you move the child window at left upper corner to another place and move either H or V scrollbar the child GUI will be moved properly. BUT if you have scrolled the scrollbars to the right bottom of the image and move the child GUI to that corner, too then the child GUI jumps if you click on one of the scrollbars.
      Is there something that I didn't consider?
    • Emmhor1
      By Emmhor1
      Hi All,

      MAIN QUESTION:
      Is it possible to Call specific function within a GUI

      So I have a script with multiple functions although I don't want to use every function every time.
      My Idea is to create a simple GUI which allows me to select what functions I want to use then run the funtions by clicking a button.
      I have already made a GUI which allows me to select specific .exe's I would like to run after selection it runs the .exe one by one.
      This script is on my work laptops and cannot access it right now.
       
      Who can help me with this?
      GUIcreate
      Func1 
      Func2
      Func3
      Then have a boxes which allows me to select the specif Func.(I used GUIChecked and Unchecked in my other script)
      Then a button which executes/calls the selected functions
    • Blois
      By Blois
      Hi Guis,
       
      I need to create keyboard shortcut to navigate the tabs and activate them, but I could not use the code below:
      #include <TabConstants.au3> #include <WindowsConstants.au3> #include <GuiTab.au3> #include <GUIConstantsEx.au3> HotKeySet("^{TAB}", "_TabRight") HotKeySet("^+{TAB}", "_TabLeft") $gui = GUICreate("test",450, 300) $Tab1 = GUICtrlCreateTab(20, 24, 425, 201) $TabSheet1 = GUICtrlCreateTabItem("Tabsheet 1") $lbContagemGrupos2 = GUICtrlCreateLabel("aaaa", 50, 50) GUICtrlSetColor(-1, 0x0000FF) GUICtrlCreateTabItem("") $TabSheet2 = GUICtrlCreateTabItem(" ") $TabSheet3 = GUICtrlCreateTabItem(" ") GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd Func _TabRight() $CurPos = _GUICtrlTab_GetCurSel($Tab1) _GUICtrlTab_SetCurSel($Tab1, $CurPos + 1) $tab = "$TabSheet" & $CurPos GUICtrlSetState($TabSheet1 + $CurPos, $GUI_SHOW) Return EndFunc Func _TabLeft() $CurPos = _GUICtrlTab_GetCurSel($Tab1) _GUICtrlTab_SetCurSel($Tab1, $CurPos - 1) $tab = "$TabSheet" & $CurPos GUICtrlSetState($TabSheet1 + $CurPos, $GUI_SHOW) Return EndFunc Exit  
      can you help me?
    • Pricehacker
      By Pricehacker
      Hello again!
      I have tried searching for quite some time now but couldn´t find a single working way to change the class of your GUI that doesn´t include changing it manually after its compilation.
      First or "AutoIt v3 GUI" is a pretty boring name tbh and i would like to spice it up a bit, also, and more importantly, I would like to identify my windows by something other than its title as it will change depending on some factors and im using two different programs independently as multi threading isn't supported.
      Any help is appreciated! Thank you!
×