Jump to content

How can I make an image the background?

Recommended Posts

  • 1 month later...
  • 5 weeks later...

Function Reference



Creates a Picture control for the GUI.

GUICtrlCreatePic ( filename, left, top [, width [, height [, style [, exStyle]]]] )


filename filename of the picture to be loaded.

left The left side of the control. If -1 is used then left will be computed according to GUICoordMode.

top The top of the control. If -1 is used then top will be computed according to GUICoordMode.

width [optional] The width of the control (default is the previously used width).

height [optional] The height of the control (default is the previously used height).

style [optional] Defines the style of the control. See GUI Control Styles Appendix.

default (-1) : $SS_NOTIFY

forced style : $SS_BITMAP

exStyle [optional] Defines the extended style of the control. See Extended Style Table.

Return Value

Success: Returns the identifier (controlID) of the new control.

Failure: Returns 0 if picture cannot be created.


To set or change information in the control see GUICtrlSet....

To update the picture after the dialog box is displayed just use GUICtrlSetImage

If you want to have a picture having the same size as the file content just use width=height=0.

To have a transparent picture it is needed to use a .gif image with the transparency color set and to create the window with WS_EX_LAYERED extended style. See example 2.

Animated .gif are not supported.

To combine styles with the default style use BitOr($GUI_SS_DEFAULT_PIC, newstyle,...).

Default resizing is $GUI_DOCKSIZE.

If a picture is set as a background picture, as the other controls will overlap, it's important to disable the pic control : GuiCtrlSetState(-1,$GUI_DISABLE). This does not work with Tab control which behave differently. in this case you need to create the picture with the $WS_CLIPSIBLINGS style, some $GUI_ONTOP can still be necessary for the tab control.

The extended style $GUI_WS_EX_PARENTDRAG can be used to allow the dragging of the parent window for windows that don't have a titlebar (no $WS_CAPTION style in GUICreate).

To set the background to transparent, use GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT).


GUICoordMode (Option), GUICtrlSetImage, GUICtrlSet..., GUIGetMsg


;----- example 1 ----

#include <GUIConstants.au3>

GUICreate("My GUI picture",350,300,-1,-1,$WS_SIZEBOX+$WS_SYSMENU) ; will create a dialog box that when displayed is centered

GUISetBkColor (0xE0FFFF)

$n=GUICtrlCreatePic(@Systemdir & "\oobe\images\mslogo.jpg",50,50, 200,50)

GUISetState ()

; Run the GUI until the dialog is closed

While 1

$msg = GUIGetMsg()

If $msg = $GUI_EVENT_CLOSE Then ExitLoop


GUISetState ()

; resize the control


; Run the GUI until the dialog is closed

While 1

$msg = GUIGetMsg()

If $msg = $GUI_EVENT_CLOSE Then ExitLoop


;----- example 2

#include <GUIConstants.au3>

$gui=GUICreate("test transparentpic", 200, 100)

$pic=GUICreate("", 68, 71, 10, 10,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD),$gui)

GUICtrlCreatePic(@Systemdir & "\oobe\images\merlin.gif",0,0, 0,0)



HotKeySet("{ESC}", "main")

HotKeySet("{LEFT}", "left")

HotKeySet("{RIGHT}", "right")

HotKeySet("{DOWN}", "down")

HotKeySet("{UP}", "up")

$picPos = WinGetPos($pic)

$guiPos = WinGetPos($gui)


$msg = GUIGetMsg()

until $msg = $GUI_EVENT_CLOSE


Func main()

$guiPos = WinGetPos($gui)



Func left ()

$picPos = WinGetPos($pic)



Func right()

$picPos = WinGetPos($pic)



Func down()

$picPos = WinGetPos($pic)



Func up()

$picPos = WinGetPos($pic)



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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...