AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

Ein Thema von s.h.a.r.k · begonnen am 13. Mai 2011 · letzter Beitrag vom 25. Mai 2011
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 18. Mai 2011, 19:24
Ich muss mir mal ein Windows 7 in eine VM installieren und da ein Theme-Wechsel vornehmen, sodass die Button anders aussehen. Ich könnte wetten, dass es eine API für das ganze gibt oder vielleicht eine Beschreibung der Zeichenroutine. Ergebnisse folgen, sobald ich mal Zeit habe
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 18. Mai 2011, 23:36
Hm, es ist scheinbar wirklich so, dass die Anwendungen die Buttons selbst zeichnen müssen und es keinerlei Windows API gibt, siehe dem Screenshot anbei. Leider habe ich es nicht geschafft in der letzten halben Stunde der VM beizubringen mehrere Monitore zu nutzen, daher kann ich im Moment noch keine Aussage bzgl. UltraMon treffen.

Nachtrag: Habe es jetzt geschafft meiner VM mehrere Monitore unterzujubeln und so UltraMon mal näher anzuschauen. Das Ergebnise ist das gleich wie bei Trillian, es wird echt alles selbst gezeichnet. Wundert mich zwar immer noch etwas, aber ich muss mich wohl damit abfinden,dass ich das nun echt selbst machen muss.
Angehängte Grafiken
Dateityp: png ultramon.png (69,1 KB, 87x aufgerufen)
Dateityp: png trillian.png (73,9 KB, 114x aufgerufen)
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (19. Mai 2011 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 19. Mai 2011, 19:02
hm, kranke Idee:
wenn man einen Button (z.B. 100 Pixel breit) zeichnen lässt, der 3mal so breit ist, als das echte Ziel, dann hat man schon mal eine Fläche mit den richtigen Farben (300 Pixel breit). Auf diese Art ist das Systemicon aus dem Weg. Dann die Ränder links und rechts in die gewünschte Fläche (100 Pixel) reinkopieren und danach auf diese 100 Pixel beschneiden. Damit ist der Button fertig und man kann das eigene Icon draufmalen.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 20. Mai 2011, 00:22
Genau die Idee hatte ich auch schon wobei das wohl nur für das Standardskin von Windows funktionieren würde. Wobei das sicherlich feststellbar ist und wenn es mal nicht mehr das Standardskin sein sollte, dann würde ich den Hintergrund einfach weg lassen. Zumindest hat UltraMon bei einem geskinnten Windows kein Hintergrund für die Icons gesetzt und die Idee fand ich an sich ganz passend, da die Icons dann sehr neutral da oben sitzen und zumindest kein falscher Hintergrund sichtbar ist.

Nur muss man eben mal die Zeit dafür finden
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 20. Mai 2011, 00:50
Also die Bitmaps sind auf jeden fall in der Theme-Datei enthalten. Du kannst einfach mal %windir%\Resources\Themes\Aero\aero.msstyles in Reshacker oder einem ähnlichen Programm öffnen. Ich habe gerade mal reingeschaut, und z.B. IMAGE/618 (bei mir, Vista) sieht verdächtig nach Fensterbutton aus.

Du müsstest jetzt nur noch den offiziellen Klassennamen für die ThemeAPI finden...

[edit]
WP_SYSBUTTON mal versucht?
[/edit]

Geändert von Namenloser (20. Mai 2011 um 00:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 20. Mai 2011, 01:39
Ich habs über den ThemeService probiert und mit twSysButtonNormal wurde gar nichts gezeichnet. Ich muss mich allgemein mal schlau machen, wie ich ein eigenes Theme erzeugt und eine entsprechende msstyles-Datei baue. Ich denke, dass ich dann über alle nötigen Informationen stolpern werden. Wenn gerade nur nicht so viel andere Arbeit anstehen würde Ziel des ganze wären es eine Komponente aus dem ganzen Zeugs zu basteln. Klar, der User müsste dann schon noch einiges Code, wenn er mehr haben wollen würde. Aber man kann ihm ja immerhin so GDI+ Gedöns abnehmen

-- Nachtrag:
twSysButton* -> nichts wird gezeichnet
twMDISysButton* -> nichts wird gezeichnet
twMinButton* -> passt alles
twMDIMinButton* -> passt alles
twMaxButton* -> passt alles
twCloseButton* -> passt alles
twSmallCloseButton* -> passt alles
twMDICloseButton* -> passt alles
etc...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (20. Mai 2011 um 01:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 25. Mai 2011, 13:59
Kennst Du schon TXStyleForm? Vllt sind da die richtigen Ideen drin...
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (25. Mai 2011 um 14:47 Uhr) Grund: Link verbessert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz