Hallo,
ich habe hier mal in aller Reduziertheit mein Problem aufgeschrieben. Zur Reproduzierung ist die anliegende Datei und ein jpg notwendig. Folgendes gelingt mir nicht:
- Case $iBild (Ansprechbarkeit des Controls, das auf Tab3 im Scrollfenster erscheint)
... in Verbindung mit dem Umschalten der Tabs und dem dann folgenden erneuten Anklicken des Bildes.
Dank und Gruß
Thomas
Spoiler anzeigen
AutoIt
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>
#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>
#include "GuiScroll.au3" ; -> http://autoit.de/index.php?page=Thread&postID=162464#post162464
#include <ScreenCapture.au3>
Global $iBild
startGui()
Func startGui()
global $mainGui = GUIcreate("Titel", 600, 600)
$tab = GUICtrlCreateTab(-1,-1,600,600)
$tab1 = GUICtrlCreateTabItem("Tab1")
GUICtrlSetState(-1, $GUI_SHOW)
$tab2 = GUICtrlCreateTabItem("Tab2")
$tab3 = GUICtrlCreateTabItem("Tab3")
$buttonStart = GUIctrlcreatebutton("start", 10, 30,120,30)
$tab4 = GUICtrlCreateTabItem("Tab4")
$tab5 = GUICtrlCreateTabItem("Tab5")
GUICtrlCreateTabItem("")
GUIsetstate()
$hGroup2 = GUICreate("",270,170,235,25,BitOR($WS_POPUP,$WS_BORDER,$WS_GROUP,$WS_VSCROLL,$WS_CLIPSIBLINGS),$WS_EX_MDICHILD,$mainGui)
GUISetBkColor(0xffffff)
GUICtrlCreateButton("Testbutton", 10, 170, 100, 25)
Scrollbar_Create($hGroup2, $SB_VERT, 170 + 25) ; alle 3 Top-Werte (170 auch für Button und GuiCreate) einstellen um den Scrollpunkt festzulegen! +25 macht 25 Pix scrollbar
Scrollbar_Step(10, $hGroup2, $SB_VERT)
While 1
$msg = GUIgetmsg()
Switch $msg
Case $tab
If GUICtrlRead($tab, 1) = $tab3 Then
GUISetState(@SW_SHOW, $hGroup2)
WinActivate($mainGui)
$iBild = _Bildvorschau($hGroup2,@ScriptDir & "\bild.jpg")
Else
GUISetState(@SW_HIDE, $hGroup2)
EndIf
;Case $iBild
;MsgBox("","Button gedrückt...","")
Case $buttonStart
ConsoleWrite("start()")
Case $GUI_EVENT_CLOSE
ConsoleWrite("exit" & @CRLF)
Exit
EndSwitch
WEnd
EndFunc ; ==> startGui()
Func _Bildvorschau($hGui,$sImage)
Local Const $iWidth = 100, $iHeight = 100 ; Soll-Vorschaugroesse
Local Const $iX = 10, $iY = 10 ; x und y Abstand
GUISwitch($hGUI)
_GDIPlus_Startup() ;initialize GDI+
Local $hImage = _GDIPlus_BitmapCreateFromFile($sImage)
Local $hBitmap = _GDIPlus_ImageResize($hImage, $iWidth, $iHeight)
Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
$cPic = GUICtrlCreatePic("", $iX, $iY, $iWidth, $iHeight)
GUICtrlSendMsg($cPic, 0x0172, 0, $hHBitmap)
_WinAPI_DeleteObject($hHBitmap)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Return $cPic
EndFunc
Alles anzeigen