1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] Kéo thả hình ảnh trong GUI

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Đức Phan, 24/1/17.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. Đức Phan

    Đức Phan Thành viên mới
    • 1/6

    Tham gia ngày:
    5/12/15
    Bài viết:
    1
    Đã được thích:
    1
    Em có đoạn mã như sau:
    Mã (AutoIt):
       $Guiname = "GUI"
       $GUI = GUICreate($Guiname,700,250,0,0)
       $alpha = GUICtrlCreatePic('image.bmp',0,0,200,200)
       GUISetState(@SW_SHOW)
       While 1
          $nMsg = GUIGetMsg()
          Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          EndSwitch
       WEnd
    Cho em hỏi là có cách nào để dùng chuột kéo ảnh đó di chuyển đến vị trí khác trong GUI được không ạ?
    Em xin cảm ơn
    [​IMG]
     
    kamsamita1 thích bài này.
  2. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Code kéo thả các loại control đến bất kì vị trí nào trong GUI, người viết: Melba23 - autoitscript.com

    Mã (AutoIt):
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

    ; Mouse coords relative to GUI client area
    Opt("MouseCoordMode", 2)

    ; Set target coords
    Global $iTgt_Left = 10, $iTgt_Right = 210, $iTgt_Top = 10, $iTgt_Bot = 110

    ; Create GUI
    $hGUI = GUICreate("Test", 300, 200)

    $cTarget = GUICtrlCreateLabel("Kéo mấy thằng kia vào đây đi", $iTgt_Left, $iTgt_Top, $iTgt_Right - $iTgt_Left, $iTgt_Bot - $iTgt_Top, 0x800201)
    GUICtrlSetState(-1, $GUI_DISABLE)

    $cLabel = GUICtrlCreateLabel("Kéo tui đi", 10, 150, 60, 20, 0x800201)
    GUICtrlSetBkColor(-1, 0x00FF00)

    $cButton = GUICtrlCreateButton("Kéo tui đi", 110, 150, 80, 23)

    $cPic = GUICtrlCreatePic("", 200, 150, 80, 23, -1, 0x1)


    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $GUI_EVENT_PRIMARYDOWN
                ; If the mouse button is pressed - get info about where
                $cInfo = GUIGetCursorInfo($hGUI)
                ; Is it over a control
                $iControl = $cInfo[4]
                Switch $iControl
                    ; If it is a control we want to move
                    Case $cLabel, $cButton, $cPic
                        ; Work out offset of mouse on control
                        $aPos = ControlGetPos($hGUI, "", $iControl)
                        $iSubtractX = $cInfo[0] - $aPos[0]
                        $iSubtractY = $cInfo[1] - $aPos[1]
                        ; And then move the control until the mouse button is released
                        Do
                            $cInfo = GUIGetCursorInfo($hGUI)
                            ControlMove($hGUI, "", $iControl, $cInfo[0] - $iSubtractX, $cInfo[1] - $iSubtractY)
                        Until Not $cInfo[2]
                        ; See if the mouse was released over the target
                        $aMPos = MouseGetPos()
                        If $aMPos[0] > $iTgt_Left And $aMPos[0] < $iTgt_Right Then
                            If $aMPos[1] > $iTgt_Top And $aMPos[1] < $iTgt_Bot Then
                                Switch $iControl
                                    Case $cLabel
                                        $sItem = "label"
                                    Case $cButton
                                        $sItem = "button"
                                EndSwitch
                                MsgBox(0, "Info", "Over target with " & $sItem)
                            EndIf
                        EndIf

                EndSwitch
        EndSwitch
    WEnd
     
    kamsamita1 and Đức Phan like this.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...