Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Увеличение изображении при нажатии на него (http://forum.oszone.net/showthread.php?t=199687)

Centrinar 16-02-2011 23:20 1614885

Увеличение изображении при нажатии на него
 
Что-то похожее на галерею, есть картинки GUICtrlCreatePic... размером 50х50, возможно ли реализовать увеличении ее в отдельно окошке при нажатии на нее.

Yashied 17-02-2011 02:34 1614978

Вложений: 1
Код:

#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>

Global $Zoom = 0

GUICreate('MyGUI', 400, 400)
$Pic = GUICtrlCreatePic('Test.jpg', 168, 168, 64, 64)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Pic
            If $Zoom Then
                For $i = 244 To 64 Step -20
                    GUICtrlSetPos($Pic, (400 - $i) / 2,(400 - $i) / 2, $i, $i)
                    GUICtrlSetImage($Pic, 'Test.jpg')
                Next
            Else
                For $i = 76 To 256 Step 20
                    GUICtrlSetPos($Pic, (400 - $i) / 2,(400 - $i) / 2, $i, $i)
                    GUICtrlSetImage($Pic, 'Test.jpg')
                Next
            EndIf
            $Zoom = Not $Zoom
    EndSwitch
WEnd


madmasles 17-02-2011 03:33 1614987

Centrinar,
Или так.
Icons.au3
читать дальше »
Код:

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

Dim $aPic[10][2] = [[9],[@ScriptDir & '\1.png'],[@ScriptDir & '\2.png'],[@ScriptDir & '\3.png'], _
        [@ScriptDir & '\4.png'],[@ScriptDir & '\5.png'],[@ScriptDir & '\6.png'], _
        [@ScriptDir & '\7.png'],[@ScriptDir & '\8.png'],[@ScriptDir & '\9.png']]

$iW = 128
$iH = 128
$iInterval = 10
$ijW = 0
$ijH = 0
$hGui = GUICreate('Test', $iW * 3 + ($aPic[0][0] / 3 + 1) * $iInterval, $iH * 3 + ($aPic[0][0] / 3 + 1) * $iInterval)
GUISetBkColor(0xFFDAB9)
For $i = 1 To $aPic[0][0]
    $aPic[$i][1] = GUICtrlCreatePic('', $iInterval * 2 + $iW * $ijW, $iInterval * 2 + $iH * $ijH, $iW, $iH)
    _SetImage($aPic[$i][1], $aPic[$i][0])
    $ijW += 1
    If Not Mod($i, 3) Then
        $ijW = 0
        $ijH += 1
    EndIf
Next
$nPic = GUICtrlCreatePic('', 0, 0, $iW * 3 + ($aPic[0][0] / 3 + 1) * $iInterval, $iH * 3 + ($aPic[0][0] / 3 + 1) * $iInterval)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nPic
            For $j = 1 To $aPic[0][0]
                GUICtrlSetState($aPic[$j][1], $GUI_SHOW)
            Next
            _SetImage($nPic, '')
            GUICtrlSetState($nPic, $GUI_HIDE)
        Case Else
            For $i = 1 To $aPic[0][0]
                If $nMsg = $aPic[$i][1] Then
                    For $j = 1 To $aPic[0][0]
                        GUICtrlSetState($aPic[$j][1], $GUI_HIDE)
                    Next
                    GUICtrlSetState($nPic, $GUI_SHOW)
                    _SetImage($nPic, $aPic[$i][0])
                EndIf
            Next
    EndSwitch
WEnd


madmasles 17-02-2011 04:21 1614993

Yashied,
У Вас симпатичнее. :)
К своему приспособил:
читать дальше »
Код:

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

Dim $aPic[10][2] = [[9],[@ScriptDir & '\1.png'],[@ScriptDir & '\2.png'],[@ScriptDir & '\3.png'], _
        [@ScriptDir & '\4.png'],[@ScriptDir & '\5.png'],[@ScriptDir & '\6.png'], _
        [@ScriptDir & '\7.png'],[@ScriptDir & '\8.png'],[@ScriptDir & '\9.png']]
$nLastPic = ''
$iW = 128
$iH = 128
$iInterval = 10
$ijW = 0
$ijH = 0

$iW_Gui = $iW * 3 + ($aPic[0][0] / 3 + 1) * $iInterval
$iH_Gui = $iH * 3 + ($aPic[0][0] / 3 + 1) * $iInterval

$hGui = GUICreate('Test', $iW_Gui, $iH_Gui, -1, -1, -1, $WS_EX_COMPOSITED)
GUISetBkColor(0xFFDAB9)
For $i = 1 To $aPic[0][0]
    $aPic[$i][1] = GUICtrlCreatePic('', $iInterval * 2 + $iW * $ijW, $iInterval * 2 + $iH * $ijH, $iW, $iH)
    _SetImage($aPic[$i][1], $aPic[$i][0])
    $ijW += 1
    If Not Mod($i, 3) Then
        $ijW = 0
        $ijH += 1
    EndIf
Next
$nPic = GUICtrlCreatePic('', ($iW_Gui - $iW) / 2, ($iH_Gui - $iH) / 2, $iW, $iH)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nPic
            For $ii = $iW_Gui To $iW Step -10
                GUICtrlSetPos($nPic, ($iW_Gui - $ii) / 2, _
                        ($iH_Gui - $ii) / 2, $ii, $ii)
                _SetImage($nPic, $nLastPic)
            Next
            $nLastPic = ''
            _SetImage($nPic, $nLastPic)
            GUICtrlSetState($nPic, $GUI_HIDE)
            For $j = 1 To $aPic[0][0]
                GUICtrlSetState($aPic[$j][1], $GUI_SHOW)
            Next
        Case Else
            For $i = 1 To $aPic[0][0]
                If $nMsg = $aPic[$i][1] Then
                    For $j = 1 To $aPic[0][0]
                        GUICtrlSetState($aPic[$j][1], $GUI_HIDE)
                    Next
                    GUICtrlSetState($nPic, $GUI_SHOW)
                    $nLastPic = $aPic[$i][0]
                    For $ii = $iW To $iW_Gui Step 10
                        GUICtrlSetPos($nPic, ($iW_Gui - $ii) / 2, _
                                ($iH_Gui - $ii) / 2, $ii, $ii)
                        _SetImage($nPic, $nLastPic)
                    Next
                    GUICtrlSetPos($nPic, 0, 0, $iW_Gui, $iH_Gui)
                    _SetImage($nPic, $nLastPic)
                EndIf
            Next
    EndSwitch
WEnd



Время: 15:11.

Время: 15:11.
© OSzone.net 2001-