2345678 war nur ein Beispiel.
Du sollst 280px mit einer größeren Zahl vergleichen.
Beiträge von Freaky
-
-
Schon klar, mach mal 2 Stück untereinander.
Mach eins auf 280px und das andere auf 2345678px. Und schau mal wie "groß" der Unterschied ist
-
Hallo,
wie bekomme ich bei dem Ladebalken von der UDF GDIpProgress.au3 länger als 280px?UDF ist im Anhang.
-
UEZ vielen Dank, das ist mal ein Beispiel was sogar mit meienm Bild funktioniert.
Ich werde das jetzt mal in mein anderes Script bauen und gucken wie es wird.Wenn ich probleme dabei haben werde, wende ich mich hier wieder.
-
GUISetBkColor(0xFFFFFF, $hGUI)
Jetzt habe ich ein weißen Hintergrund, ich möchte aber ein transparenten Hintergrund.name22
Mein Script ganz oben, da funktioniert das ja ohne Probleme. Aber da wird mein Ladebalken nicht angezeigt
-
Nein klappt nicht. Die Ecken sind Zickzack und das was transparent ist, ist blau

-
Hier ein zweites Beispielbild.
Ich möchte das es 1:1 angezeigt wird wie es wirklich ist also mit den ganzen Effekten und so. -
Hmm, komischer weise kann ich mein Bild in dein Beispiel einbauen und es funktioniert auch. Aber mein Bild ist ziehmlich verpixelt an den runden Kanten und Ecken.
Gibt es dafür auch ne Lösung? -
Danke, aber ich benutze ein Bild als Hintergrund und mein Bild ist nicht 4 eckig wie im Beispiel sondern hat eine Form und ist eine PNG.
Damit das Beispiel geht musst du bei GUICreate das ); entfernen
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GDIpProgress.au3>Global $iImagePfad = @ScriptDir & "\"
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Form", 450, 610, (@DesktopWidth / 2) - 400, -1, $WS_POPUP, $WS_EX_LAYERED)
[/autoit] [autoit][/autoit] [autoit]
$hImage = _GDIPlus_ImageLoadFromFile( "bg.png")
SetBitMap($hGUI, $hImage, 255)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState(@SW_SHOW, $hGUI)$Progress1 = _ProgressCreate(20, 186, 292, 14)
[/autoit] [autoit][/autoit] [autoit]
_ProgressSetColors($Progress1, 0x09B8F8, 0x09B8F8, 0xFFFFFF, 0xFFFFFF)
_ProgressSet($Progress1, 50)Sleep (5000)
[/autoit] [autoit][/autoit] [autoit]Func SetBitmap($hGUI, $hImage, $iOpacity)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, $hGUI, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmapFunc WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
if ($hWnd = $hGUI) and ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc ;==>WM_NCHITTEST -
Das Problem besteht immer noch.
Mir were es auch egal wenn ich ein Bild nehmen könnte und es einfach langziehen, dies bekomme ich aber ebenfalls nicht hin.
-
Ok, merke ich mir.
Habs hochgeladen
-
Jetzt sollte es gehen.
Include und Varibale fehlte. Und ein bg habe ich hochgeladen. -
Huhu,
ich möchte gerne den Ladebalken (GDIpProgress.au3) von Prog@ndy benutzen in meiner Form.
Die Form ist eine PNG.
Die Objecte die mit GUICtrlCreate erstellt werden, werden nicht angezeigt (leider).Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GDIpProgress.au3>Global $iImagePfad = @ScriptDir & "\"
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Form", 450, 610, (@DesktopWidth / 2) - 400, -1, $WS_POPUP);, $WS_EX_LAYERED)
[/autoit] [autoit][/autoit] [autoit]
$hImage = _GDIPlus_ImageLoadFromFile($iImagePfad & "bg.png")
SetBitMap($hGUI, $hImage, 255)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState(@SW_SHOW, $hGUI)$Progress1 = _ProgressCreate(20, 186, 292, 14)
[/autoit] [autoit][/autoit] [autoit]
_ProgressSetColors($Progress1, 0x09B8F8, 0x09B8F8, 0xFFFFFF, 0xFFFFFF)
_ProgressSet($Progress1, 50)Sleep (5000)
[/autoit] [autoit][/autoit] [autoit]Func SetBitmap($hGUI, $hImage, $iOpacity)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, $hGUI, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmapFunc WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
if ($hWnd = $hGUI) and ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc ;==>WM_NCHITTESTWeiß einer wie ich den Ladebalken sichtbar mache?
-
Ahhh

trotzdem muss ich noch draufklicken können, brauche es als Button.Edit:
Das was Marsi mir vorgeschlagen hat funktioniert nicht
Habe es 1:1 in meien Form gebaut, aber meine Form ist ebenfalls mit GDI+ gemalt
-
Guten Morgen,
hilft Dir das weiter?
Danke, aber PNG kann ich schon benutzen wegen er Funktion von SEuBo

-
Danke aber das ist irgend wie doppelt und dreifach gemoppelt

-
GUISetState funktioniert ebenfalls nicht

-
Geht das auch mit Objecten in einer GUI, weil die Objecte die man erstellt sind keine einzelnen Formen mehr.
Edit:
GUICtrlSetState kann die Bilder nicht unsichtbar machen. -
Also drüber malen oder wie?
Ich will nähmlich ein Hovereffekt machen, aber es geht nicht weil ich das Bild ja nicht geändert bekomme -
Ich gehe mal davon aus, das du GUICtrlCreatePic meinst. GUICtrlCreatePng gibt es nicht.
Dazu mußt du GUICtrlSetImage benutzen.
Nein ich meine GUICtrlCreatePng. Wie Funktion wurde wie schon erwähnt von SEuBo geschrieben.