Jump to content

how to add/remove/drag image in GUI window?


Recommended Posts

Hi, Please help me.

I want create control of some GUI window, in this control:

can Add a image or more to display dynamically;

can remove some selected image and remains of images sorted automatically

can drag some image to other image position for sorting images

For simplify, all image have the same size.

Link to comment
Share on other sites

For drag a bmp and display it on the gui, try this :

#include <WindowsConstants.au3>
#include <GUIConstants.au3>

GUICreate ( "Test", 300, 200, -1, -1, -1, $WS_EX_ACCEPTFILES + $WS_EX_TOPMOST )
GUICtrlCreateLabel ( "", -1, -1, 300, 200 )
GUICtrlSetState ( -1, $GUI_DISABLE + $GUI_DROPACCEPTED )
$_Pic = GUICtrlCreatePic ( "", 0, 0, 300, 200 )
GUISetState ( )

While 1
    $msg = GUIGetMsg ( )
    Switch $msg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $GUI_EVENT_DROPPED
            ConsoleWrite ( "@GUI_DRAGFILE : " & @GUI_DRAGFILE & @Crlf )
            GUICtrlSetImage ( $_Pic, @GUI_DRAGFILE )
    EndSwitch
WEnd

for remove it, add a button for set GUICtrlSetImage ( $_Pic, '' )

Edited by wakillon

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Link to comment
Share on other sites

For drag a bmp and display it on the gui, try this :

#include <WindowsConstants.au3>
#include <GUIConstants.au3>

GUICreate ( "Test", 300, 200, -1, -1, -1, $WS_EX_ACCEPTFILES + $WS_EX_TOPMOST )
GUICtrlCreateLabel ( "", -1, -1, 300, 200 )
GUICtrlSetState ( -1, $GUI_DISABLE + $GUI_DROPACCEPTED )
$_Pic = GUICtrlCreatePic ( "", 0, 0, 300, 200 )
GUISetState ( )

While 1
    $msg = GUIGetMsg ( )
    Switch $msg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $GUI_EVENT_DROPPED
            ConsoleWrite ( "@GUI_DRAGFILE : " & @GUI_DRAGFILE & @Crlf )
            GUICtrlSetImage ( $_Pic, @GUI_DRAGFILE )
    EndSwitch
WEnd

for remove it, add a button for set GUICtrlSetImage ( $_Pic, '' )

Thanks a lot for your so fast reply.

But I want the effects as the record: http://min.us/m3LR2E

I don't know how to start

Link to comment
Share on other sites

This is a lot bugged :mellow: but you can have an idea looking at this.

#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <StaticConstants.au3>
Global $checkCursor
$Image1 = @ScriptDir & "\Pic1.jpg"
$Image2 = @ScriptDir & "\Pic2.Jpg"
If Not FileExists($Image1) Then InetGet("http://i273.photobucket.com/albums/jj239/StarcraftImages/MCR.jpg", $Image1)
If Not FileExists($Image2) Then InetGet("http://www.autoitscript.com/forum/uploads/av-28198.gif", $Image2) ; Sorry Wakillon ;S
$hGui = GUICreate("Drag Me! and Rezise Me by Monoscout999")
$Pic1 = GUICtrlCreatePic($Image1, 10, 10, 200, 200, $SS_SUNKEN)
$Pic2 = GUICtrlCreatePic($Image2, 200, 200, 200, 200, $SS_SUNKEN)
$Pic1Size = ControlGetPos($hGui, "", $Pic1)
$Pic2Size = ControlGetPos($hGui, "", $Pic2)
GUISetState()
While True
    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
    $aMouse = GUIGetCursorInfo()
    If @error Then ContinueLoop
    Switch $aMouse[2]
        Case 1
            Switch $aMouse[4]
                Case $Pic1
                    Select
                        Case $aMouse[0] > $Pic1Size[0] And $aMouse[0] < $Pic1Size[0] + $Pic1Size[2] And $aMouse[1] > $Pic1Size[1] And $aMouse[1] < $Pic1Size[1] + $Pic1Size[3]
                            Do
                                $aMouse2 = GUIGetCursorInfo()
                                If $aMouse2[0] <> $aMouse[0] Then
                                    ControlMove($hGui, "", $Pic1, $Pic1Size[0] + ($aMouse2[0] - $aMouse[0]), $Pic1Size[1] + ($aMouse2[1] - $aMouse[1]))
                                EndIf
                            Until $aMouse2[2] = 0
                            $aMouse = GUIGetCursorInfo()
                    EndSelect
                Case $Pic2
                    Select
                        Case $aMouse[0] > $Pic2Size[0] And $aMouse[0] < $Pic2Size[0] + $Pic2Size[2] And $aMouse[1] > $Pic2Size[1] And $aMouse[1] < $Pic2Size[1] + $Pic2Size[3]
                            Do
                                $aMouse2 = GUIGetCursorInfo()
                                If $aMouse2[0] <> $aMouse[0] Then
                                    ControlMove($hGui, "", $Pic2, $Pic2Size[0] + ($aMouse2[0] - $aMouse[0]), $Pic2Size[1] + ($aMouse2[1] - $aMouse[1]))
                                EndIf
                            Until $aMouse2[2] = 0
                            $aMouse = GUIGetCursorInfo()
                    EndSelect
            EndSwitch
        Case 0
            Switch $aMouse[4]
                Case $Pic1
                    Select
                        Case $aMouse[0] > $Pic1Size[0] And $aMouse[0] < $Pic1Size[0] + $Pic1Size[2] And $aMouse[1] > $Pic1Size[1] And $aMouse[1] < $Pic1Size[1] + $Pic1Size[3]
                            If $checkCursor = False Then
                                GUISetCursor(9)
                                $checkCursor = Not $checkCursor
                            EndIf
                    EndSelect
                Case $Pic2
                    Select
                        Case $aMouse[0] > $Pic2Size[0] And $aMouse[0] < $Pic2Size[0] + $Pic2Size[2] And $aMouse[1] > $Pic2Size[1] And $aMouse[1] < $Pic2Size[1] + $Pic2Size[3]
                            If $checkCursor = False Then
                                GUISetCursor(9)
                                $checkCursor = Not $checkCursor
                            EndIf
                    EndSelect
                Case Else
                    If $checkCursor = True Then
                        GUISetCursor(-2) ; just a random invalid ID to
                        $checkCursor = Not $checkCursor
                    EndIf
            EndSwitch
    EndSwitch
WEnd
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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...