Bot Posted June 9, 2010 Share Posted June 9, 2010 Hello,I know that the function ControlGetPos can retrieve the position of the control relative to it's window but are there any way to get this to the screen? Thanks.#include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 623, 449, -1, -1) $Input1 = GUICtrlCreateInput("Input1", 8, 8, 609, 21) GUISetState(@SW_SHOW) $pos = ControlGetPos("Form1", "", "[CLASS:Edit; INSTANCE:1]") MsgBox(0, "Window Stats:", "POS: " & $pos[0] & "," & $pos[1] & " SIZE: " & $pos[2] & "," & $pos[3] ) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Link to comment Share on other sites More sharing options...
Yoriz Posted June 9, 2010 Share Posted June 9, 2010 Hows this ? #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 623, 449, -1, -1) $Input1 = GUICtrlCreateInput("Input1", 8, 8, 609, 21) GUISetState(@SW_SHOW) $pos = ControlGetPos("Form1", "", "[CLASS:Edit; INSTANCE:1]") MsgBox(0, "Window Pos Stats:", "POS: " & $pos[0] & "," & $pos[1] & " SIZE: " & $pos[2] & "," & $pos[3]) $iWinPos = WinGetPos("Form1") $iClientSize = WinGetClientSize("Form1") Global $aScreenPos[2] = [$iWinPos[0] + $pos[0] + ($iWinPos[2] - $iClientSize[0]), $iWinPos[1] + $pos[1] + ($iWinPos[3] - $iClientSize[1])] MsgBox(0, "Screen Pos Stats:", "POS: " & $aScreenPos[0] & "," & $aScreenPos[1] & " SIZE: " & $pos[2] & "," & $pos[3]) MouseClickDrag("Left", $aScreenPos[0], $aScreenPos[1] + $pos[3] / 2, $aScreenPos[0] + 5, $aScreenPos[1] + $pos[3] / 2) Send("{RIGHT} side of the in") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd GDIPlusDispose - A modified version of GDIPlus that auto disposes of its own objects before shutdown of the Dll using the same function Syntax as the original.EzMySql UDF - Use MySql Databases with autoit with syntax similar to SQLite UDF. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 9, 2010 Moderators Share Posted June 9, 2010 Bot, Or this: #include <GUIConstantsEx.au3> #include <WinAPI.au3> $hGUI = GUICreate("Test", 500, 500) $hLabel = GUICtrlCreateLabel("Here", 10, 10, 80, 30) GUICtrlSetBkColor(-1, 0xFFCCCC) $hButton = GUICtrlCreateButton("Coords", 10, 50, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton $aPos = ControlGetPos($hGUI, "", $hLabel) MsgBox(0, "Position", "Relative to GUI:" & @CRLF & $aPos[0] & " - " & $aPos[1]) $tPoint = DllStructCreate("int X;int Y") DllStructSetData($tpoint, "X", $aPos[0]) DllStructSetData($tpoint, "Y", $aPos[1]) _WinAPI_ClientToScreen($hGUI, $tPoint) MsgBox(0, "Position", "Relative to Screen:" & @CRLF & DllStructGetData($tpoint, "X") & " - " & DllStructGetData($tpoint, "Y")) EndSwitch WEnd Move the GUI around and see how the results change! M23 Norm73 1 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Bot Posted June 10, 2010 Author Share Posted June 10, 2010 (edited) I have tried and both are working flawlessly. Thank you so much for your help The example of Yoriz is so funny too Edited June 10, 2010 by Bot Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted June 13, 2010 Share Posted June 13, 2010 You all forgot WinGetPos #include <GUIConstantsEx.au3> $hGUI = GUICreate("Test", 320, 160) $hLabel = GUICtrlCreateLabel("Here", 10, 10, 80, 30) GUICtrlSetBkColor(-1, 0xFFCCCC) $hLabelh = GUICtrlGetHandle($hLabel) $hButton = GUICtrlCreateButton("Coords", 10, 50, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton $aPos = ControlGetPos($hGUI, "", $hLabel) MsgBox(0, "Position", "Relative to GUI:" & @CRLF & $aPos[0] & " - " & $aPos[1]) $aPos = WinGetPos($hLabelh) MsgBox(0, "Position", "Relative to Screen:" & @CRLF & $aPos[0] & " - " & $aPos[1]) EndSwitch WEnd .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 14, 2010 Moderators Share Posted June 14, 2010 AdmiralAlkex, How did we miss that? Thanks! M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now