Sign in to follow this  
Followers 0
GraaF1337

GUI 50% Transparent?

10 posts in this topic

This allows me to make a GUI and make the background transparrent, and place a picture on it.

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <WinAPI.au3>
#include <ColorConstantS.au3>


$Form1 = GUICreate("Form1", 200, 200, 663, 317, -1, $WS_EX_LAYERED)
GUISetBkColor(0x0000F4)

GUICtrlCreateGraphic(0, 100, 200, 1)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateGraphic(0, 50, 200, 1)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateGraphic(0, 150, 200, 1)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateGraphic(100, 0, 1, 200)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateGraphic(50, 0, 1, 200)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateGraphic(150, 0, 1, 200)
GUICtrlSetBkColor(-1, 0x000000)

$Pic1 = GUICtrlCreatePic("C:\Users\Toft\Desktop\dot.bmp", 50, 50, 100, 100)

_WinAPI_SetLayeredWindowAttributes($Form1, 0x0000F4)
GUISetState(@SW_SHOW)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

But i was wondering is there is any way to make the picture it self 40-50% transparent?

Share this post


Link to post
Share on other sites



Have a look at this >link


Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

; Johnmcloud - 2014
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

Global Const $SM_CXFIXEDFRAME = 7
Global Const $hTitlebar = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
Global Const $hBorder = _WinAPI_GetSystemMetrics($SM_CXFIXEDFRAME)

$hGUI = GUICreate("Johnmcloud Test Code", 169, 200, -1, -1, -1, $WS_EX_LAYERED)
GUISetBkColor(0xABCDEF)
$Button = GUICtrlCreateButton("Test", 50, 65, 70, 50)
$aGUIPos = WinGetPos($hGUI)
If @error Then Exit

$hChild = GUICreate("", 169, 200, $aGUIPos[0] + $hBorder, $aGUIPos[1] + ($hTitlebar + $hBorder), BitOR($WS_POPUP, $WS_BORDER), $WS_EX_TOOLWINDOW)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 0, 169, 68)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic2 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 68, 169, 68)
GUICtrlSetState(-1, $GUI_DISABLE)
$Pic3 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 136, 169, 68)
GUICtrlSetState(-1, $GUI_DISABLE)
WinSetTrans($hChild, "", 50)

GUISetState(@SW_SHOWNOACTIVATE, $hChild)
GUISetState(@SW_SHOW, $hGUI)

_WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255)

GUIRegisterMsg($WM_MOVE, "WM_MOVE")

While 1
    $aMsg = GUIGetMsg(1)
    Switch $aMsg[1]
        Case $hGUI
            Switch $aMsg[0]
                Case $GUI_EVENT_MINIMIZE
                    GUISetState(@SW_HIDE, $hChild)
                Case $GUI_EVENT_RESTORE
                    GUISetState(@SW_SHOW, $hChild)
                    WinActivate($hGUI)
                Case $GUI_EVENT_CLOSE
                    Exit
                Case $Button
                    ConsoleWrite("Button" & @CR)
            EndSwitch
        Case $hChild
            Switch $aMsg[0]
                Case $GUI_EVENT_PRIMARYDOWN
                    ControlFocus($hGUI, "", $Button)
            EndSwitch
    EndSwitch
WEnd

Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $wParam, $lParam
    If $hWnd <> $hGUI Then Return
    Local $aPos = WinGetPos($hGUI)
    WinMove($hChild, "", $aPos[0] + $hBorder, $aPos[1] + ($hTitlebar + $hBorder))
EndFunc   ;==>WM_MOVE

mvrt6c.jpg

logo4.gif

post-66064-0-41280400-1414688220.gif

Edited by johnmcloud

Share this post


Link to post
Share on other sites
; Jonhmcloud - 2014
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>

$hGUI = GUICreate("Johnmcloud Test GUI", 169, 200, -1, -1, -1, $WS_EX_LAYERED)
GUISetBkColor(0x0000F4)

$Pic1 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 0, 169, 68)
ControlSetTrans(-1, 50)
$Pic2 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 68, 169, 68)
ControlSetTrans(-1, 50)
$Pic3 = GUICtrlCreatePic(@ScriptDir & "\logo4.gif", 0, 136, 169, 68)
ControlSetTrans(-1, 50)

_WinAPI_SetLayeredWindowAttributes($hGUI, 0x0000F4)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Pic1, $Pic2, $Pic3
            ConsoleWrite("Click" & @CR)
    EndSwitch
WEnd

Func ControlSetTrans($iCtrlID, $iTrans = 255, $iDisable = 0) ; original by ChrisL  - edited by Johnmcloud
    Local $pHwnd, $hWnd, $aPos

    $hControl = GUICtrlGetHandle($iCtrlID)
    If $hControl = 0 Then Return SetError(1, 0, 0)

    If $iDisable Then GUICtrlSetState($iCtrlID, $GUI_DISABLE)

    $pHwnd = _WinAPI_GetParent($hControl)
    If @error Then Return SetError(2, 0, 0)

    $aPos = ControlGetPos($pHwnd, "", $hControl)
    If @error Then Return SetError(3, 0, 0)
    $hWnd = GUICreate("", $aPos[2], $aPos[3], $aPos[0], $aPos[1], $WS_POPUP, BitOR($WS_SYSMENU, $WS_EX_MDICHILD), $pHwnd)

    _WinAPI_SetParent($hControl, $hWnd)
    If @error Then Return SetError(4, 0, 0)

    ControlMove($hWnd, "", $hControl, 0, 0)
    WinSetTrans($hWnd, "", $iTrans)

    GUISetState(@SW_SHOW, $hWnd)
    GUISwitch($pHwnd)
    Return $hWnd
EndFunc   ;==>ControlSetTrans

2e2qib5.png

logo4.gif

logo4.gif

Perfect! :)

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Or not! :-/

If you at some point do 

GUISetState(@SW_HIDE)

The transparrent area will still show.

Edited by GraaF1337

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Also it seems you can't use buttons if you use the transparrent thingy..

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


$hGUI = GUICreate("New GUI", 300, 200, -1, -1, -1, $WS_EX_LAYERED)
GUISetBkColor(0x0000F4)

$Pic1 = GUICtrlCreatePic(@ScriptDir & "\test2.bmp", 0, 0, 300, 200)
GUICtrlSetState($Pic1, $GUI_DISABLE)
ControlSetTrans(-1, 175)

_WinAPI_SetLayeredWindowAttributes($hGUI, 0x0000F4)
GUISetState(@SW_SHOW)

$test = GUICtrlCreateButton("Hide", 100, 50)

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

        Case $test
            MsgBox(0, "HA", "HA")
    EndSwitch
WEnd

Func ControlSetTrans($iCtrlID, $iTrans = 255, $iDisable = 0)
    Local $pHwnd, $hWnd, $aPos

    $hControl = GUICtrlGetHandle($iCtrlID)
    If $hControl = 0 Then Return SetError(1, 0, 0)

    If $iDisable Then GUICtrlSetState($iCtrlID, $GUI_DISABLE)

    $pHwnd = _WinAPI_GetParent($hControl)
    If @error Then Return SetError(2, 0, 0)

    $aPos = ControlGetPos($pHwnd, "", $hControl)
    If @error Then Return SetError(3, 0, 0)
    $hWnd = GUICreate("", $aPos[2], $aPos[3], $aPos[0], $aPos[1], $WS_POPUP, BitOR($WS_SYSMENU, $WS_EX_MDICHILD), $pHwnd)

    _WinAPI_SetParent($hControl, $hWnd)
    If @error Then Return SetError(4, 0, 0)

    ControlMove($hWnd, "", $hControl, 0, 0)
    WinSetTrans($hWnd, "", $iTrans)

    GUISetState(@SW_SHOW, $hWnd)
    GUISwitch($pHwnd)
    Return $hWnd
EndFunc

Also i tried what was posted here.

 

Have a look at this >link

 
And that doesn't work either :-/
That is not even getting transparrent.
Edited by GraaF1337

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

See post #3

Please next time don't quote the CODE tag, is unnecessary. If is solved, press the apposite button

Edited by johnmcloud

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

See post #3

 

If you at some point do 

GUISetState(@SW_HIDE)

The transparrent area will still show.

 

Read please, cuz you function does what i want it to, but it keeps showing after do a "GUISetState(@SW_HIDE)"

Edited by GraaF1337

Share this post


Link to post
Share on other sites

You need to hide also $hChild, check the new example with $GUI_EVENT_MINIMIZE
 

Share this post


Link to post
Share on other sites

I see thank you for your help! ;)

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
Sign in to follow this  
Followers 0