Jump to content

GUI Stay on Top ON OFF Button


DoofGore
 Share

Recommended Posts

Hello All, My first post I know this is pretty noobish but I'm trying to find a way to make this gui working.. searched but as I'm new to autoit I don't understand much... 

I want to make this gui on top if we press ON TOP button and off on top function when we press on top off.. Created gui with koda ... any help would be appreciated 

Regards,

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 353, 209, 192, 114)
Global $ONTOPON = GUICtrlCreateButton("ON TOP ON", 32, 40, 137, 65)
Global $exit = GUICtrlCreateButton("EXIT", 105, 118, 137, 65)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $ONTOPOFF = GUICtrlCreateButton("ON TOP OFF", 184, 41, 137, 65)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $ONTOPON

        Case $ONTOPOFF

        Case $exit
            Exit


    EndSwitch
WEnd

 

ontop.jpg

Link to comment
Share on other sites

  • Moderators

DoofGore,

WinSetOnTop should be the solution for which you are looking.

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 comment
Share on other sites

  • Moderators

@DoofGore Did you read the help file entry for WinSetOnTop? It explains what it does pretty simply. Where exactly are you confused?

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

1 minute ago, JLogan3o13 said:

@DoofGore Did you read the help file entry for WinSetOnTop? It explains what it does pretty simply. Where exactly are you confused?

I am confused how to write this function to set the gui on top on button click : Can you please provide some examples? So I can learn it how to make this function work.. Thanks

Link to comment
Share on other sites

UH there is an example in the helpfile?

https://www.autoitscript.com/autoit3/docs/functions/WinSetOnTop.htm

;Example
#include <AutoItConstants.au3>

Example()

Func Example()
    ; Retrieve the handle of the active window.
    Local $hWnd = WinGetHandle("[ACTIVE]")

    ; Set the active window as being ontop using the handle returned by WinGetHandle.
    WinSetOnTop($hWnd, "", $WINDOWS_ONTOP)

    ; Wait for 2 seconds to display the change.
    Sleep(2000)

    ; Remove the "topmost" state from the active window.
    WinSetOnTop($hWnd, "", $WINDOWS_NOONTOP)
EndFunc   ;==>Example
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 353, 209, 192, 114)
Global $ONTOPON = GUICtrlCreateButton("ON TOP ON", 32, 40, 137, 65)
Global $exit = GUICtrlCreateButton("EXIT", 105, 118, 137, 65)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $ONTOPOFF = GUICtrlCreateButton("ON TOP OFF", 184, 41, 137, 65)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $ONTOPON
            Example($Form1, True)
        Case $ONTOPOFF
            Example($Form1, False)
        Case $exit
            Exit


    EndSwitch
WEnd


Func Example($hWnd, $bTrue)
    
    If Not IsHwnd($hWnd) Then Msgbox(0,"Error" "Invalid hWnd")
    If $bTrue Then
        ; Set the active window as being ontop using the handle YOU supply.
        WinSetOnTop($hWnd, "", $WINDOWS_ONTOP)
    Else
        ; Remove the "topmost" state from the handle YOU supply.
        WinSetOnTop($hWnd, "", $WINDOWS_NOONTOP)
    EndIF
EndFunc   ;==>Example
#include <AutoItConstants.au3>
    
    If Not IsHwnd($hWnd) Then Msgbox(0,"Error", "Invalid hWnd")

 

Edited by Bilgus
Couple Errors..
Link to comment
Share on other sites

Made Some changes and its working..  Thank you so much ... :) 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 353, 209, 192, 114)
Global $ONTOPON = GUICtrlCreateButton("ON TOP ON", 32, 40, 137, 65)
Global $exit = GUICtrlCreateButton("EXIT", 105, 118, 137, 65)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $ONTOPOFF = GUICtrlCreateButton("ON TOP OFF", 184, 41, 137, 65)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $ONTOPON
            Example($Form1, True)
        Case $ONTOPOFF
            Example($Form1, False)
        Case $exit
            Exit


    EndSwitch
WEnd


Func Example($Form1, $bTrue)
    ; Retrieve the handle of the active window.
    Local $hWnd = WinGetHandle("[ACTIVE]")
    If $bTrue Then
        ; Set the active window as being ontop using the handle returned by WinGetHandle.
        WinSetOnTop($hWnd, "", $WINDOWS_ONTOP)
    Else
        ; Wait for 2 seconds to display the change.
        Sleep(2000)

        ; Remove the "topmost" state from the active window.
        WinSetOnTop($hWnd, "", $WINDOWS_NOONTOP)
    EndIf
EndFunc   ;==>Example

 

Edited by DoofGore
Link to comment
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
 Share

×
×
  • Create New...