|
You last visited: Today at 05:10
Advertisement
[How To] Transparentes Gui (AutoIt)
Discussion on [How To] Transparentes Gui (AutoIt) within the Coding Tutorials forum part of the General Coding category.
09/08/2010, 22:33
|
#1
|
elite*gold: 34
Join Date: Feb 2010
Posts: 437
Received Thanks: 124
|
[How To] Transparentes Gui (AutoIt)
Guten Abend Comunnity
ich will euch zeigen wir ihr eine Transparente Gui mit AutoIt machen könnt.
Das ganze sieht so aus:
Und so könnte ein Programm aussehen:
also fangen wir an:
1. Das Grundgerüst
Wir fangen mit dem ganz normalem Grundgerüst einer Gui an
also ungefähr so:
PHP Code:
$GUI = GUICreate("How To Transparente Gui", 300, 300) GUISetState(@SW_SHOW)
While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
Dazu kommen noch 2 includes :
PHP Code:
#include <StructureConstants.au3> #include <GUIConstants.au3>
2. Die Funktion
als nächstes kommt die Funktion rein die unsere Gui transparent macht.
die sieht so aus :
PHP Code:
Func Transparenz($hWnd,$leftw,$rightw,$toph,$bottomh) ;Anfang der Funktion, die variabeln enthalten die Größe der Gui (hier im Beispiel 300) $struct=c("int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight;"); Hier wird eine Dll Struktur erstellt. DllStructSetData($struct,"cxLeftWidth",$leftw) ;In die gerade erstellte Struktur werden jetzt die oben angegeben Werte ($leftw, $rightw , $toph und $bottomh) gesetzt. DllStructSetData($struct,"cxRightWidth",$rightw) DllStructSetData($struct,"cyTopHeight",$toph) DllStructSetData($struct,"cyBottomHeight",$bottomh) GUISetBkColor("0x000000"); Wenn man hier einen anderen Hex Farbwert einträgt ist die Tönung etwas anders Return DllCall("dwmapi.dll", "int", "DwmExtendFrameIntoClientArea", "hwnd", $hWnd, "ptr", DllStructGetPtr($struct)) ; Und Zum Schluss wird noch die Funktion aufgerufen. EndFunc
;Ende der Funktion
Wenn wir sie jetzt in unser Grundgerüst einbauen müsste das so ausssehen :
PHP Code:
#include <StructureConstants.au3> #include <GUIConstants.au3>
$GUI = GUICreate("How To Transparente Gui", 300, 300) GUISetState(@SW_SHOW)
While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE Exit EndSwitch Wend Func Transparenz($hWnd,$leftw,$rightw,$toph,$bottomh) $struct=DllStructCreate("int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight;") DllStructSetData($struct,"cxLeftWidth",$leftw) DllStructSetData($struct,"cxRightWidth",$rightw) DllStructSetData($struct,"cyTopHeight",$toph) DllStructSetData($struct,"cyBottomHeight",$bottomh) GUISetBkColor("0x000000") Return DllCall("dwmapi.dll", "int", "DwmExtendFrameIntoClientArea", "hwnd", $hWnd, "ptr", DllStructGetPtr($struct)) EndFunc
3. Die Funktion aufrufen
zum Schluss muss die Funktion noch aufgerufen werden.
Das kann man z.b. so machen :
PHP Code:
Case 1 = 1 Transparenz($GUI,300,300,300,300)
Am Ende sieht das fertige Script also so aus :
PHP Code:
#include <StructureConstants.au3> #include <GUIConstants.au3>
$GUI = GUICreate("How To Transparente Gui", 300, 300) GUISetState(@SW_SHOW)
While 1 $Msg = GUIGetMsg() ; Switch $Msg Case $GUI_EVENT_CLOSE Exit Case 1 = 1 Transparenz($GUI,300,300,300,300) ; Hier muss man folgendes eintragen : 1. Variablenname der bei Guicreate benutzt wurde,2. breite, 3. höhe ,4. left, 5. top (genau die werte, die Man am Anfang bei GuiCreate verwendet hat)
EndSwitch Wend Func Transparenz($hWnd,$leftw,$rightw,$toph,$bottomh) $struct=DllStructCreate("int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight;") DllStructSetData($struct,"cxLeftWidth",$leftw) DllStructSetData($struct,"cxRightWidth",$rightw) DllStructSetData($struct,"cyTopHeight",$toph) DllStructSetData($struct,"cyBottomHeight",$bottomh) GUISetBkColor("0x000000") ; hier kann man die farbe noch ein bisschen ändern. Return DllCall("dwmapi.dll", "int", "DwmExtendFrameIntoClientArea", "hwnd", $hWnd, "ptr", DllStructGetPtr($struct)) EndFunc
Es funktioniert auf jedenfall auf Windows 7. Bei Vista und xp weis ich es nicht.
Ihr könnt natürlich noch Buttons Labels etc. einbauen.
Ich hoffe ich konnte euch helfen
Mfg killer-service
|
|
|
09/09/2010, 12:54
|
#2
|
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
|
Bitte umschreiben, das ist kein Tutorial. Du hast lediglich Code gepostet und gesagt wo man ihn wie einfügt.
Tutorial ? Wikipedia
|
|
|
09/09/2010, 13:16
|
#3
|
elite*gold: 34
Join Date: Feb 2010
Posts: 437
Received Thanks: 124
|
Quote:
Originally Posted by Walter Sobchak
Bitte umschreiben, das ist kein Tutorial. Du hast lediglich Code gepostet und gesagt wo man ihn wie einfügt.
Tutorial ? Wikipedia
|
Oh tut mir leid, das wusste ich nicht.
Aber was soll ich jetzt machen?
|
|
|
09/09/2010, 14:01
|
#4
|
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
|
Vielleicht ein wenig mehr erklären was der Code macht. Jemand der das nicht kennt kopiert das einfach und fügts an, weiss aber nicht was die einzelnen Zeilen oder Parameter tun.
|
|
|
09/09/2010, 15:00
|
#5
|
elite*gold: 34
Join Date: Feb 2010
Posts: 437
Received Thanks: 124
|
Quote:
Originally Posted by Walter Sobchak
Vielleicht ein wenig mehr erklären was der Code macht. Jemand der das nicht kennt kopiert das einfach und fügts an, weiss aber nicht was die einzelnen Zeilen oder Parameter tun.
|
Ok danke.
Ich habe die Funktion noch ein bisschen erklärt.
|
|
|
09/13/2010, 06:07
|
#6
|
elite*gold: 0
Join Date: Oct 2008
Posts: 88
Received Thanks: 2
|
ich kenn mich jetzt zum beispiel nicht wirklich mit autoit aus und frag mich jetzt ob du deine erklärungen in den code mit geschrieben hast wie zum beispiel bei der farbe in 3. die funktion wieder aufrufen?
es wäre besser wenn du die erklärungen nicht mit in den code schreibst sondern davor als einleitung. ich als neuling in autoit hab das am anfang nicht ganz kapiert, ansonsten netter guide, ich geb dir mal einfach ein thx
|
|
|
09/13/2010, 12:09
|
#7
|
elite*gold: 34
Join Date: Feb 2010
Posts: 437
Received Thanks: 124
|
Quote:
Originally Posted by .InterveNtion.
ich kenn mich jetzt zum beispiel nicht wirklich mit autoit aus und frag mich jetzt ob du deine erklärungen in den code mit geschrieben hast wie zum beispiel bei der farbe in 3. die funktion wieder aufrufen?
es wäre besser wenn du die erklärungen nicht mit in den code schreibst sondern davor als einleitung. ich als neuling in autoit hab das am anfang nicht ganz kapiert, ansonsten netter guide, ich geb dir mal einfach ein thx
|
Danke für das Feedback. Ich werde es ändern.
|
|
|
09/14/2010, 17:36
|
#8
|
elite*gold: 0
Join Date: Oct 2008
Posts: 428
Received Thanks: 179
|
Was mich noch interessieren würde, wäre eine komplett unsichtbare GUI, mit sichtbaren Controls.
Ich meine mal was drüber gelesen zu haben wie man's in AutoIt realisiert aber finde es einfach nicht mehr.
|
|
|
09/14/2010, 18:14
|
#9
|
elite*gold: 34
Join Date: Feb 2010
Posts: 437
Received Thanks: 124
|
Quote:
Originally Posted by RealEmX
Was mich noch interessieren würde, wäre eine komplett unsichtbare GUI, mit sichtbaren Controls.
Ich meine mal was drüber gelesen zu haben wie man's in AutoIt realisiert aber finde es einfach nicht mehr.
|
Meist du  ?
|
|
|
09/15/2010, 12:17
|
#10
|
elite*gold: 0
Join Date: Oct 2008
Posts: 428
Received Thanks: 179
|
HA! YES! x)
Das ist der genau der Fred den ich mir mal durchgelesen habe, den ich aber wieder vergessen hab.
Danke ^^
|
|
|
10/07/2010, 16:42
|
#11
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1
Received Thanks: 0
|
Vielen Dank für das Tutorial. Ich habe jedoch eine Frage: WIe bekomme ich es hin, dass Bilder sowie Texte und Schriften der Buttons, ... und der eigentliche Button Design nicht transparent wird sondern ganz normal lesbar?
Sprich wie wird nur der Hintergrund der Form transparent?
Vielen Dank
|
|
|
07/22/2012, 16:07
|
#12
|
elite*gold: 0
Join Date: Oct 2011
Posts: 4
Received Thanks: 0
|
why apply this function hides the labels?
|
|
|
Similar Threads
|
Transparentes GM Logo erstellen
10/16/2010 - Metin2 PServer Guides & Strategies - 14 Replies
Einigen von euch ist bestimmt schon aufgefallen wenn man ein GM Logo erstellt und den Hintergrund auf Transparent stellt und es als *.tga abspeichert erscheint ingame das Transparente jedoch in Weiß:
http://i41.tinypic.com/f2ouua.png
Was braucht ihr?
Den locale Ordner
FormatFactory
Ein Bildbearbeitungsprogramm (Photoshop, Paint.NET, etc.)
Einen GM Account oder die Metin2 Console (Für DE bitte hier runterladen:...
|
Kann man ein Transparentes Gildenzeichen hochladen?
07/13/2010 - Metin2 - 7 Replies
Also ich habe grad ein Transparentes Gildenzeichen gemacht aber das Problem ist ich kann es nicht hochladen es ist im Format .png gespeichert aber wenn ich das Bild in .jpg abspeichere ist es nicht mehr transparent.
Wenn ich es hochladen will wird es nichtmal angezeigt trotz relogg etc.!
Deswegen frage ich gibt es irgendeine Methode transparente Gildenzeichen hochzuladen?
Lg xBluMex
|
All times are GMT +1. The time now is 05:11.
|
|