Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

GUI mit farbigen Buttons?



  • Please log in to reply
27 replies to this topic
roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012

Hallo,

 

habe ein GUI das Buttons enthaelt.

Diese sind derzeit per default in grau/silber und ich moechte diese unterschiedlich faerben (rot/gruen).

 

Bisher habe ich aber irgendwie keine Moeglichkeit gefunden dies zu tun.

 

Durch Class_CTLColors.AHK gemaess

http://www.autohotke...-your-controls/

habe ich so was aehnliches gefunden fuer z.B. RadioButtons etc. Aber anscheinend geht das dann nicht fuer Buttons.

 

Gibts eine andere Moeglichkeit die Buttons farbig zu gestalten?

 

Gruss,

Roady



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

http://www.autohotke...opic.php?t=2570

RIP DE FORUM sad.png


Visit the new forum ahkscript.org.

http://ahkscript.org


roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012

Hallo nnnik,

 

danke fuer den Hinweis...

http://www.autohotke...opic.php?t=2570

RIP DE FORUM

Aber entweder ich verstehe das nicht so ganz, oder es noch immer nicht das, was ich suche.

 

Im zitierten Thread sind zwar mehrere Beispiele enthalten, aber entweder faerben die "nur" ;-) den Text des Buttons ODER die faerben Hintergruende von Checkboxen, Editfeldern oder so. Aber selbst in den Beispielen sind eigentliche "Buttons" weiterhin mit default-Werten "ungefaerbt silber/grau".

 

Wie bekomme ich also den Hintergrund eines Buttons auf rot und einen anderen auf gruen?

 

Wo finde ich weitere Infos zum HWND-Werten und/oder Funktionalitaeten?

Wenn ich bei CLASS_CTLColors.AHK mit HWNDBTID1 "spiele" (s.a. erster zitierter Link) klappt's nicht.

 

Gruss,

Roady



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Mein Fehler

http://www.autohotke...789ab3c29d17799

Das sollte das richtige sein.

Es hat glücklicherweise AHK.net überlebt.


Visit the new forum ahkscript.org.

http://ahkscript.org


roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012

Also, wenn ich das von gepostete Script in Scite einlese (was ich auch schon vorher im Thread gesehen und auch mal vorher schon ausprobiert hatte, bevor ich die erste Antwort schrieb) und dann starte, erhalte ich zwar eine nette GUI mit farbigen TEXTEN im Button. Aber sonst nichts. Der einzige Button, den ich da sehe ist "Langweiler" und der ist nicht anders farbig. Einzig veraendert sich der Hintergrund in "hellgrau", wenn ich mit der Maus drueberfahre. Aber das machen meine Buttons in meinem Script auch.

 

Was soll denn da sonst "mit dem Button" Langweiler passieren? Laut Script doch an sich "nichts", oder?

 

UND:

Warum kann ich eigentlich keine Bilder / Screenshots posten? Angeblich "keine Rechte"..?

 

Gruss,

Roady


Edited by roady1969, 04 April 2013 - 07:50 AM.


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Du hast gelesen bevor ich editiert hab wink.png

Und ja wenn man einen Post editiert kann man keine Bilder mehr reinmachen.


Visit the new forum ahkscript.org.

http://ahkscript.org


roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012

ok, damit habe ich farbige Buttons.

 

ABER, wenn ich ueber mein Script - nachfolgend mal ein kleiner Auszug -

 

Gui, Add, Button, VStarten GStarten x36 y30 w170 h160 , Starten
_CreateImageButtonPlus_("Starten, "FF0000|FF0000", "000000", 2)
Gui, Add, Button, VBeenden GBeenden x266 y30 w170 h160 , Beenden
_CreateImageButtonPlus_("Beenden", "00FF00|00FF00", "000000", 2)

 

die Funktion aufrufe, habe ich das Phaenomen, dass

1. ich zahlreiche Fehlermeldungen (bezugnehmend den integrierten _CreateImageButtonPlus_) habe (wie z.B. Variable not set etc.)

2. der Button nur noch den ersten  (!) Buchstaben des Labeltextes anzeigt (also z.B. "S" und nur "B").

 

1. kann ich mit #Warn, All off abschalten

2. habe ich aber auch schon im Ursprungsbeispielscript

 

Also laeuft's nicht so ganz.

Woran liegt's?

 

Und warum muss man die JPG Grafik runterladen (die dann zu buttontest.jpg wird)? Das tue ich in meinem Script nicht. Wozu ist

hBM := GetBitmapGdiP("ButtonTest.jpg")

dann gut? Kommentiere ich diese Zeile im Ursprungs-Beispielscript aus, hat das keine Aenderungen.

Gruss,

roady



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Hab es an die Unicode Version angepasst.






_CreateImageButtonPlus_(HWND, CB, CT = "", 3D = "", GC = "") {
   ; ---------------------------------------------------------------------------
   ; HWND   : HWND oder Variablenname des Buttons
   ;          Variablennamen m�ssen als "Strings" �bergeben werden!
   ; CB     : Hintergrundfarbe:
   ;          6-steliger RGB Hexwert ("RRGGBB") oder HTML-Farbname ("Red")
   ;          2 Pipe (|) getrennte Werte bestimmen die Start- und Zielfarbe f�r
   ;          Farbverl�ufe. Wenn nur ein Wert �bergeben wird, gilt er als
   ;          Zielfarbe und die Startfarbe wird auf Schwarz gesetzt.
   ;          3D = 9 : In CB muss ein HBITMAP-Handle oder der Dateipfad eines
   ;          Bildes �bergeben werden.
   ; Optional ------------------------------------------------------------------
   ; CT     : Textfarbe:
   ;          6-steliger RGB Hexwert ("RRGGBB") oder HTML Farbname ("Red")
   ;          Voreinstellung: 000000 (Schwarz)
   ; 3D     : 3D-Effekte:
   ;          0 = keiner, 1 = erhaben, 2 = "3D" Verlauf, 3 = "flacher" Verlauf
   ;          9 = Hintergrundbild (CB enth�lt den Dateipfad oder ein HBITMAP-Handle)
   ;          Voreinstellung: 0
   ; GC     : Gammakorrektur:
   ;          0 = nein, 1 = ja
   ;          Voreinstellung: 0
   ; ---------------------------------------------------------------------------
   ; Die meisten DllCall's stammen aus tic's GDIP.AHK:
   ; --> http://www.autohotkey.com/forum/post-198949.html
   ; Ohne tic's Skript g�be es dieses nicht!!!
   ; ---------------------------------------------------------------------------
   ; HTML-Farben
   Static HTML_BLACK := "000000"
        , HTML_SILVER := "C0C0C0"
        , HTML_GRAY := "808080"
        , HTML_WHITE := "FFFFFF"
        , HTML_MAROON := "800000"
        , HTML_RED := "FF0000"
        , HTML_PURPLE := "800080"
        , HTML_FUCHSIA := "FF00FF"
        , HTML_GREEN := "008000"
        , HTML_LIME := "00FF00"
        , HTML_OLIVE := "808000"
        , HTML_YELLOW := "FFFF00"
        , HTML_NAVY := "000080"
        , HTML_BLUE := "0000FF"
        , HTML_TEAL := "008080"
        , HTML_AQUA := "00FFFF"
   ; Windows Konstanten
        , BS_CHECKBOX := "0x2"
        , BS_RADIOBUTTON := "0x4"
        , BS_GROUPBOX := "0x7"
        , BS_AUTORADIOBUTTON := "0x9"
        , BS_BITMAP := "0x80"
        , BS_LEFT := "0x100"
        , BS_RIGHT := "0x200"
        , BS_CENTER := "0x300"
        , BS_TOP := "0x400"
        , BS_BOTTOM := "0x800"
        , BS_VCENTER := "0xC00"
        , SA_LEFT := "0x0"
        , SA_CENTER := "0x1"
        , SA_RIGHT := "0x2"
        , BCM_SETIMAGELIST := "0x1602"
        , BCM_GETTEXTMARGIN := "0x1605"
        , BUTTON_IMAGELIST_ALIGN_LEFT := 0
        , BUTTON_IMAGELIST_ALIGN_RIGHT := 1
        , BUTTON_IMAGELIST_ALIGN_CENTER := 4
        , BM_SETIMAGE := "0xF7"
        , IMAGE_BITMAP := "0x0"
        , BITSPIXEL := "0xC"
        , WM_GETFONT := "0x31"
   ; Weitere Konstanten
        , DEFAULT_CT := "000000"
        , DEFAULT_CB1 := "000000"
        , DEFAULT_3D := 0
        , DEFAULT_GC := 0
   RCBUTTONS := BS_CHECKBOX | BS_RADIOBUTTON | BS_AUTORADIOBUTTON
   ; ---------------------------------------------------------------------------
   ; HWND pr�fen
   If !(HWND + 0) {
      GuiControlGet, nHWND, HWND, %HWND%
      HWND := nHWND
   }
   ; ---------------------------------------------------------------------------
   ; Klasse und Stile des Controls holen und pr�fen
   WinGetClass, Class, ahk_id %HWND%
   If (Class != "Button") {
       MsgBox, 48, _CreateImageButtonP_
            , % "Diese Funktion arbeitet nur mit`n"
            . "Controls der Klasse ""Button""!"
       Return False
   }
   ControlGet, BS, Style, , , ahk_id %HWND%
   If (BS & 0xF ^ BS_GROUPBOX) = 0 {
       MsgBox, 48, _CreateImageButtonP_
            , % "Diese Funktion arbeitet nicht mit`n"
            . "Controls des Typs ""GroupBox""!"
       Return False
   }
   ; ---------------------------------------------------------------------------
   ; Ggf. Voreinstellungen f�r optionale Parameter setzen
   If (CT = "")
      CT := DEFAULT_CT
   If (3D = "")
      3D := DEFAULT_3D
   If (GC = "")
      GC := DEFAULT_GC
   If (3D < 4) {
      If InStr(CB, "|")
         StringSplit, CB, CB, |
      Else
         CB1 := DEFAULT_CB1, CB2 := CB
      If (HTML_%CB1% != "")
         CB1 := HTML_%CB1%
      If (HTML_%CB2% != "")
         CB2 := HTML_%CB2%
   }
   If (HTML_%CT% != "")
      CT := HTML_%CT%
   ; Verf�gbarkeit von GDI+ pr�fen
   If !DllCall("GetModuleHandle", "Str", "Gdiplus")
      hGDIP := DllCall("LoadLibrary", Str, "gdiplus")
   VarSetCapacity(SI, 16, 0)
 , Numput(1, SI, 0, "Char")
 , DllCall("gdiplus\GdiplusStartup", UIntP, pToken, UInt, &SI, UInt, 0)
   If (!pToken) {
       MsgBox, 48, _CreateImageButtonP_
            , % "GDIplus konnte nicht gestartet werden!`n"
            . "Pr�fen Sie bitte die Verf�gbarkeit von GDIPlus auf Ihrem System!"
       Return False
   }
   ; ---------------------------------------------------------------------------
   ; Farbtiefe und Font ermitteln
   hDC := DllCall("GetDC", UInt, HWND)
 , BPP := DllCall("GetDeviceCaps", UInt, hDC, Int, BITSPIXEL)
 , Font := DllCall("SendMessage", UInt, HWND, UInt, WM_GETFONT, UInt, 0, UInt, 0)
 , DllCall("SelectObject", UInt, hDC, UInt, Font)
 , DllCall("gdiplus\GdipCreateFontFromDC", UInt, hDC, UintP, hFont)
 , DllCall("ReleaseDC", UInt, HWND, UInt, hDC)
   ; ---------------------------------------------------------------------------
   ; Rechteck des Clientbereichs ermitteln
 , VarSetCapacity(RECT, 16, 0)
 , DllCall("GetClientRect", UInt, HWND, UInt, &RECT)
 , W := NumGet(RECT, 8), H := NumGet(RECT, 12)
   ; ---------------------------------------------------------------------------
   ; Rechteck f�r das Bild typabh�ngig anpassen
   SysGet, SMIW, 49
   If (BS & RCBUTTONS) > 1
      RCBUTTON := 1, W -= SMIW
   Else
      RCBUTTON := 0, W -= 8, H -= 8
   ; ---------------------------------------------------------------------------
   ; Beschriftung holen
    ControlGetText,Text2,,ahk_id %HWND%
   ; ---------------------------------------------------------------------------
   ; GDI+ Bitmap erzeugen
  DllCall("gdiplus\GdipCreateBitmapFromScan0", Int, W, Int, H, Int, 0
      , Int, 0x26200A, UInt, 0, UIntP, pBitmap)
   ; ---------------------------------------------------------------------------
   ; Zeiger auf das zugeh�rige Grafikobjekt holen
 , DllCall("gdiplus\GdipGetImageGraphicsContext", UInt, pBitmap, UIntP, pGraphics)
   ; ---------------------------------------------------------------------------
   ; Gl�ttung auf Systemeinstellung setzen
 , DllCall("gdiplus\GdipSetSmoothingMode", UInt, pGraphics, Int, 0)
   If (3D < 4) {
      ; ---------------------------------------------------------------------------
      ; Bitmap erstellen:
      ; POINT-Struktor f�r den Startpunkt
      VarSetCapacity(Point1, 8, 0)
    , NumPut(0, Point1, 0, "Float")
    , NumPut(0, Point1, 4, "Float")
      ; POINT-Struktor f�r den Endpunkt
    , VarSetCapacity(Point2, 8, 0)
    , NumPut(0, Point2, 0, "Float")
    , NumPut(H, Point2, 4, "Float")
      ; Startfarbe
    , Color1 := "0xFF" . CB1
      ; Zielfarbe
    , Color2 := "0xFF" . CB2
      ; Pinsel f�r einen "linearen Verlauf" erstellen
    , DllCall("gdiplus\GdipCreateLineBrush", UInt, &Point1, UInt, &Point2
         , Int, Color1, Int, Color2, Int, 0, UIntP, pBrush)
      ; Gammakorrektur setzen
    , DllCall("gdiplus\GdipSetLineGammaCorrection", UInt, pBrush, Int, GC)
      ; Relative Intensit�t setzen
    , VarSetCapacity(RELINT, 20, 0)
    , I1 := (3D = 0 ? 1.0 : 3D = 1 ? 0.25 : 3D = 2 ? 0.0 : 0.0)
    , I2 := (3D = 0 ? 1.0 : 3D = 1 ? 1.0 : 3D = 2 ? 0.5 : 0.25)
    , I3 := (3D = 0 ? 1.0 : 3D = 1 ? 1.0 : 3D = 2 ? 1.0 : 0.5)
    , I4 := (3D = 0 ? 1.0 : 3D = 1 ? 1.0 : 3D = 2 ? 0.5 : 0.75)
    , I5 := (3D = 0 ? 1.0 : 3D = 1 ? 0.25 : 3D = 2 ? 0.0 : 1.0)
    , NumPut(I1, RELINT, 0, "Float")
    , NumPut(I2, RELINT, 4, "Float")
    , NumPut(I3, RELINT, 8, "Float")
    , NumPut(I4, RELINT, 12, "Float")
    , NumPut(I5, RELINT, 16, "Float")
       ; Relative Positionen setzen
    , VarSetCapacity(RELPOS, 20, 0)
    , NumPut(0.0, RELPOS, 0, "Float")
    , NumPut(3D > 1 ? 0.25 : 0.15, RELPOS, 4, "Float")
    , NumPut(0.5, RELPOS, 8, "Float")
    , NumPut(3D > 1 ? 0.75 : 0.85, RELPOS, 12, "Float")
    , NumPut(1.0, RELPOS, 16, "Float")
      ; �berblendregeln setzen
    , DllCall("gdiplus\GdipSetLineBlend", UInt, pBrush, UInt, &RELINT
         , UInt, &RELPOS, Int, 5)
      ; Verlauf einf�gen
    , DllCall("gdiplus\GdipFillRectangle", UInt, pGraphics, UInt, pBrush
         , Float, 0, Float, 0, Float, W, Float, H)
      ; Pinsel freigeben
    , DllCall("gdiplus\GdipDeleteBrush", UInt, pBrush)
   } Else If (3D = 9) {
      ; Bitmap aus Handle oder Datei erstellen
      If (CB + 0) {
         DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", UInt, CB, UInt, 0
            , UIntP, pBM)
      } Else {
         VarSetCapacity(wPATH, 1023)
       , DllCall("kernel32\MultiByteToWideChar", UInt, 0, UInt, 0
            , UInt, &CB, Int, -1, UInt, &wPATH, Int, 512)
       , DllCall("gdiplus\GdipCreateBitmapFromFile", UInt, &wPATH, UIntP, pBM)
      }
      ; Bitmap einf�gen
      DllCall("gdiplus\GdipDrawImageRectI", UInt, pGraphics, UInt, pBM
        , Int, 0, Int, 0, Int, W, Int, H)
      ; Bitmap feigeben
    , DllCall("gdiplus\GdipDisposeImage", UInt, pBM)
   }
   ; ---------------------------------------------------------------------------
   ; Ggf. Beschriftung ausgeben
   If (Text2) {
      ; ------------------------------------------------------------------------
      ; Formatobjekt erstellen
       DllCall("gdiplus\GdipCreateStringFormat", Int, 0x5404, Int, 0, UIntP, hFormat)
      ; ------------------------------------------------------------------------
       ; Textfarbe setzen
     , DllCall("gdiplus\GdipCreateSolidFill", Int, "0xFF" . CT, UIntP, pBrush)
      ; ------------------------------------------------------------------------
      ; Horizontale Ausrichtung setzen
    , HALIGN := (BS & BS_CENTER) = BS_CENTER ? SA_CENTER
              : (BS & BS_CENTER) = BS_RIGHT  ? SA_RIGHT
              : (BS & BS_CENTER) = BS_LEFT   ? SA_LEFT
              : (RCBUTTON) ? SA_LEFT : SA_CENTER
    , DllCall("gdiplus\GdipSetStringFormatAlign", UInt, hFormat, Int, HALIGN)
      ; Vertikale Ausrichtung setzen
    , VALIGN := (BS & BS_VCENTER) = BS_TOP ? 0
              : (BS & BS_VCENTER) = BS_BOTTOM ? 2
              : 1
    , DllCall("gdiplus\GdipSetStringFormatLineAlign", UInt, hFormat, Int, VALIGN)
      ; ------------------------------------------------------------------------
      ; Renderqualit�t auf Systemeinstellung setzen
    , DllCall("gdiplus\GdipSetTextRenderingHint", UInt, pGraphics, Int, 0)
      ; ------------------------------------------------------------------------
      ; Rechteck f�r den Text bestimmen
      If (RCBUTTON && HALIGN != SA_CENTER)
         XT := HALIGN = SA_RIGHT ? -8.0 : 0.0, WT := HALIGN = SA_RIGHT ? W + 8.0 : W
      Else
         XT := HALIGN = SA_CENTER ? -4.0 : 0.0, WT := HALIGN = SA_CENTER ? W + 8.0 : W
      NumPut(XT, RECT, 0, "Float")
    , NumPut(0.0, RECT, 4, "Float")
    , NumPut(WT, RECT, 8, "Float")
    , NumPut(H, RECT, 12, "Float")
      ; ------------------------------------------------------------------------
      ; Text in Unicode umwandeln
      ; ------------------------------------------------------------------------
      ; Text ausgeben
    , DllCall("gdiplus\GdipDrawString", UInt, pGraphics, Str, Text2, Int, -1
         , UInt, hFont, UInt, &RECT, UInt, hFormat, UInt, pBrush)
   }
   ; ---------------------------------------------------------------------------
   ; HBITMAP Handle f�r die Bitmap erzeugen
   DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", UInt, pBitmap, UIntP, hBitmap
      , Int, 0XFFFFFFFF)
   ; ---------------------------------------------------------------------------
   ; Ressourcen freigeben
   DllCall("gdiplus\GdipDisposeImage", UInt, pBitmap)
 , DllCall("gdiplus\GdipDeleteBrush", UInt, pBrush)
 , DllCall("gdiplus\GdipDeleteStringFormat", UInt, hFormat)
 , DllCall("gdiplus\GdipDeleteFont", UInt, hFont)
 , DllCall("gdiplus\GdipDeleteGraphics", UInt, pGraphics)
   ; GDI+ beenden
 , DllCall("gdiplus\GdiplusShutdown", UInt, pToken)
   If (hGDIP)
      DllCall("FreeLibrary", UInt, hGDIP)
   ; ---------------------------------------------------------------------------
   ; ImageList erstellen
   hIL := DllCall("ImageList_Create", UInt, W, UInt, H, UInt, BPP, UInt, 8, UInt, 0)
   Loop, 1
      DllCall("ImageList_Add", UInt, hIL, UInt, hBitmap, UInt, 0)
   ; BUTTON_IMAGELIST Struktur erstellen
   VarSetCapacity(BIL, 24, 0)
 , NumPut(hIL, BIL)
 , Numput(BUTTON_IMAGELIST_ALIGN_CENTER, BIL, 20)
   ; ImageList zuweisen
 , DllCall("SendMessage", UInt, HWND, UInt, BCM_SETIMAGELIST, UInt, 0, UInt, 0)
 , DllCall("SendMessage", UInt, HWND, UInt, BCM_SETIMAGELIST, UInt, 0, UInt, &BIL)
   ; Beschriftung l�schen
   ControlSetText, , , ahk_ID %HWND%
   ; Bitmap freigeben
   DllCall("DeleteObject", "UInt", hBitmap)
   ; Fertig!
   Return True
}

2. Der Befehl



 hBM := GetBitmapGdiP("ButtonTest.jpg")

Ist nur dafür da, damit die Bitmap auf dem Button dargestellt wird.

 

1. ich habe zahlreiche Fehlermeldungen (bezugnehmend den integrierten _CreateImageButtonPlus_) habe (wie z.B. Variable not set etc.)

 

Das ist Standard.


Visit the new forum ahkscript.org.

http://ahkscript.org


roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012

wow,

die unicode Variante geht!

 

ALLERDINGS

kommt nun beim starten meines weiterhin unveraenderten Scriptes nun die Meldung, dass die Funktion nur mit Controls der Klasse "Button" geht.

 

Diese Meldung kam nicht mit der vorigen Version.

Und ich rufe ja auch nur mit dem schon oben zitierten Code die Funktion auf.

 

Was ist nun wieder falsch?

Habe im GUI 3 Buttons (davon nun 2 farbig) und einmal ein Hinweis-Text.

 

Uebrigens kann ich nun auch in diesem Post (nicht editiert) einen Screenshot beifuegen. "I'm not allowed in this community..."

 

Gruss,

Roady



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

ALLERDINGS

kommt nun beim starten meines weiterhin unveraenderten Scriptes nun die Meldung, dass die Funktion nur mit Controls der Klasse "Button" geht.

An dem Teil des Codes hab ich eig. nichts verändert..- Die Wege von Windows sind unergründlich.

Den Fehler selber bekomm ich aber nicht.

 

Uebrigens kann ich nun auch in diesem Post (nicht editiert) einen Screenshot beifuegen. "I'm not allowed in this community..."

hab ich auch schon bemerkt wenn man editiert kann man sogar keine Smilies benutzen.

Wahrscheinlich ist ne Sicherheitslücke bekannt geworden.

Das wird garantiert bald gefixt.


Visit the new forum ahkscript.org.

http://ahkscript.org


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Hi!

 

Gibt es irgendeinen Weg den Hintergrund von Buttons Transparent zu machen? Das zerstört die ganze Optik meiner GUI :)

 

Wäre super wenn es da einen Weg gibt.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
✓  Best Answer

Ja da gibt es glaub ich einen Weg ich teste es nachher mal aus.

Und ich weiss wieso der Fehler kommt.

_CreateImageButtonPlus_(gs, "FF0000")
 
; ------------------------------------------------------------------------------
_CreateImageButtonPlus_(HWND, CB, CT = "", 3D = "", GC = "") {

 

Ich hab versehentlich eins meiner Besispiele mitgepostet.


Visit the new forum ahkscript.org.

http://ahkscript.org


roady1969
  • Members
  • 88 posts
  • Last active: Jul 16 2019 10:21 AM
  • Joined: 19 Dec 2012
Super klappt nun!

fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

nnnik hast du schon einen Weg finden können?

 

Hab noch weiter gesucht aber leider ohne Erfolg...



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Nun ja dieses Script arbeitet mit GDI+ Du nimmst ein Bild von dem auf was hinter dem Button ist, ohne das der Button existiert.

Dann setzt du es als Bild auf den Button.

Leider bekommt man damit die Ränder nicht weg.

 

Wenn du das nicht willst mach doch einfach ein Picture Control mit einem Photo von dem was dahinter ist.

Bilder unterstützen auch gosubs (Gui,Add,Picture,grun...), deshalb wäre die Funktion die gleiche.

Das Bild müsstest du entweder mitliefern oder jedesmal neu machen.

 

Mit GDI+ zeichnest du halt dann die Schrift die dabei verschwindet.


Visit the new forum ahkscript.org.

http://ahkscript.org