amanda089 Posted October 19, 2011 Share Posted October 19, 2011 Two things. 1) I want to make a transparent, ontop, window that I can draw on and click through so that I din't have to redraw constantly such as when I use the hwnd/hDC of another window. 2) How can I set an autoit gui as a child of a non-autoit window? I saw mention of how to do #1 somewhere but I can't find it again. Link to comment Share on other sites More sharing options...
amanda089 Posted October 19, 2011 Author Share Posted October 19, 2011 Any ideas? Link to comment Share on other sites More sharing options...
guinness Posted October 19, 2011 Share Posted October 19, 2011 (edited) _WinAPI_SetLayeredWindowAttributes() & _WinAPI_SetParent() & look at this >> Also please don't bump your threads less than 24 hours. Edited October 19, 2011 by guinness UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
kaotkbliss Posted October 19, 2011 Share Posted October 19, 2011 maybe something in here will help? I was working on this to add a gun scope option to a game I was making. it works fine in xp but seems to be having some issue with my win 7 64 bit now. (I haven't touched this code in a long time) expandcollapse popup#include <Misc.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> #include <WinAPIEx.au3> $dll = DllOpen("user32.dll") Global $hParent, $hForm, $Pos, $hBitmap = 0, $Go = 1, $XPrev = MouseGetPos(0), $YPrev = MouseGetPos(1) Global $hDC, $hMemDC, $hSv, $pBlend, $tBlend, $pSize, $tSize, $pSource, $tSource, $hWnd,$iX,$iY,$iHeight Global $scope = 0 ;$Cursor="E:\Shawns_Stuff\Terisi_PF\data\cross_l.cur" ;$CursorBack = 'E:\Shawns_Stuff\Terisi_PF\data\arrow_m.cur' $hParent = GUICreate('', -1, -1, -1, -1, -1, BitOR($WS_EX_LAYERED,$WS_EX_TOOLWINDOW,$WS_EX_TRANSPARENT )) $hForm = GUICreate('', 150, 150, $XPrev + 25, $YPrev + 25, BitOR($WS_DISABLED, $WS_POPUPWINDOW), BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST,$WS_EX_TRANSPARENT ), $hParent) GUISetState(@SW_HIDE, $hForm) While 1 If _IsPressed("1B", $dll) Then ;$cDll = DllCall($dll, "hwnd", "LoadCursorFromFile", "str", $CursorBack) ;DllCall($dll, "int", "SetSystemCursor", "int", $cDll[0], "int", 32512) DllClose($dll) Exit (1) EndIf If _IsPressed("5A", $dll) And $scope = 0 Then ;$cDll = DllCall($dll, "hwnd", "LoadCursorFromFile", "str", $Cursor) ;DllCall($dll, "int", "SetSystemCursor", "int", $cDll[0], "int", 32512) $scope = 1 Sleep(500) EndIf If _IsPressed("5A", $dll) And $scope = 1 Then ;$cDll = DllCall($dll, "hwnd", "LoadCursorFromFile", "str", $CursorBack) ;DllCall($dll, "int", "SetSystemCursor", "int", $cDll[0], "int", 32512) $scope = 0 GUISetState(@SW_HIDE, $hForm) Sleep(500) EndIf If $scope = 1 Then GUISetState(@SW_SHOWNOACTIVATE, $hForm) $Pos = MouseGetPos() If ($Go) Or ($Pos[0] <> $XPrev) Or ($Pos[1] <> $YPrev) Then WinMove($hForm, '', $Pos[0] - 75, $Pos[1] - 75) _Capture($Pos[0] - 25, $Pos[1] - 25, 50, 50) $XPrev = $Pos[0] $YPrev = $Pos[1] $Go = 0 EndIf _Capture($Pos[0] - 25, $Pos[1] - 25, 50, 50) EndIf WEnd Func _Capture($iX, $iY, $iWidth, $iHeight) Local $tRect, $hDC, $hMemDC, $hScreenshort = _ScreenCapture($iX, $iY, $iWidth, $iHeight) _WinAPI_FreeObject($hBitmap) $hBitmap = _WinAPI_FitToBitmap($hScreenshort, 150, 150) _WinAPI_FreeObject($hScreenshort) $hDC = _WinAPI_GetDC($hForm) $hMemDC = _WinAPI_CreateCompatibleDC($hDC) _WinAPI_SelectObject($hMemDC, $hBitmap) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($NULL_BRUSH)) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($DC_PEN)) _WinAPI_SetDCPenColor($hMemDC, 0xA00000) $aMiniSize = WinGetClientSize($hForm) $aMyMiniDC = DLLCall($dll,"int","GetDC","hwnd",$hForm) DLLCall("gdi32.dll","int","Arc", "hwnd", $aMyMiniDC[0], _ "int", 0, "int", 0, "int", $aMiniSize[0], "int", $aMiniSize[1], _ "int", 0, "int", $aMiniSize[1]/2, "int", 0, "int", $aMiniSize[1]/2) DLLCall("gdi32.dll","int","MoveToEx", "hwnd", $aMyMiniDC[0], "int", 0, "int", $aMiniSize[1]/2, "ptr", 0) DLLCall("gdi32.dll","int","LineTo", "hwnd", $aMyMiniDC[0], "int", $aMiniSize[0], "int", $aMiniSize[1]/2) DLLCall("gdi32.dll","int","MoveToEx", "hwnd", $aMyMiniDC[0], "int", $aMiniSize[0]/2, "int", 0, "ptr", 0) DLLCall("gdi32.dll","int","LineTo", "hwnd", $aMyMiniDC[0], "int", $aMiniSize[0]/2, "int", $aMiniSize[1]) _WinAPI_DrawLine($hMemDC, 150, 75, -150, 75) _WinAPI_DrawLine($hMemDC, 75, 150, 75, -150) _WinAPI_DrawLine($hMemDC, 70, 65, 80, 65) _WinAPI_DrawLine($hMemDC, 85, 70, 85, 80) _WinAPI_DrawLine($hMemDC, 70, 85, 80, 85) _WinAPI_DrawLine($hMemDC, 65, 70, 65, 80) _WinAPI_DrawLine($hMemDC, 65, 50, 85, 50) _WinAPI_DrawLine($hMemDC, 100, 65, 100, 85) _WinAPI_DrawLine($hMemDC, 65, 100, 85, 100) _WinAPI_DrawLine($hMemDC, 50, 65, 50, 85) _WinAPI_DrawLine($hMemDC, 60, 35, 90, 35) _WinAPI_DrawLine($hMemDC, 115, 60, 115, 90) _WinAPI_DrawLine($hMemDC, 60, 115, 90, 115) _WinAPI_DrawLine($hMemDC, 35, 60, 35, 90) _WinAPI_ReleaseDC($hForm, $hDC) _WinAPI_DeleteDC($hMemDC) _SetBitmap($hForm, $hBitmap, 254) EndFunc ;==>_Capture Func _ScreenCapture($iX, $iY, $iWidth, $iHeight) Local $hWnd, $hDC, $hMemDC, $hBitmap $hWnd = _WinAPI_GetDesktopWindow() $hDC = _WinAPI_GetDC($hWnd) $hMemDC = _WinAPI_CreateCompatibleDC($hDC) $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight) _WinAPI_SelectObject($hMemDC, $hBitmap) _WinAPI_BitBlt($hMemDC, 0, 0, $iWidth, $iHeight, $hDC, $iX, $iY, $MERGECOPY) _WinAPI_ReleaseDC($hWnd, $hDC) _WinAPI_DeleteDC($hMemDC) Return $hBitmap EndFunc ;==>_ScreenCapture Func _SetBitmap($hWnd, $hBitmap, $iOpacity) $hDC = _WinAPI_GetDC($hWnd) $hMemDC = _WinAPI_CreateCompatibleDC($hDC) $hSv = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = _WinAPI_GetBitmapDimension($hBitmap) $pSize = DllStructGetPtr($tSize) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, 'Alpha', $iOpacity) DllStructSetData($tBlend, 'Format', 0) _WinAPI_UpdateLayeredWindow($hWnd, $hDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) _WinAPI_ReleaseDC($hWnd, $hDC) _WinAPI_SelectObject($hMemDC, $hSv) _WinAPI_DeleteDC($hMemDC) EndFunc ;==>_SetBitmap 010101000110100001101001011100110010000001101001011100110010000 001101101011110010010000001110011011010010110011100100001 My Android cat and mouse gamehttps://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek We're gonna need another Timmy! Link to comment Share on other sites More sharing options...
Zedna Posted October 20, 2011 Share Posted October 20, 2011 Also look at my Frame application how to use "GUIHole" UDF for transparent click through areas in your application. Resources UDF ResourcesEx UDF AutoIt Forum Search 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