designtes fenster ?... problem!?

Für allgemeine Fragen zur Programmierung mit PureBasic.
celli
Beiträge: 24
Registriert: 11.01.2005 18:45

designtes fenster ?... problem!?

Beitrag von celli »

grüsst euch...

bin gerade dabei eine anwendung zu schreiben die mal durch purebasic mal etwas anders als die "gewöhnlichen" anwendungen aussehen sollte... nun soweit so gut.. aber.. hab´folgendes problem.. :
habe eine fenster mit der winapi erstellt und mit einem hintergrundbild belegt... aber wenn ich die "normalen" gadgets benutze sieht das ganze ein wenig albern aus... erst recht wenn ich in den "windows Classic Style" schalte... nun ... wie kann man die gadgets so modifizieren das sie moderner aussehen...?? z.b:
- eine eigene scrollbar.. nicht die farben ... sondern bitmap setzen !
- listIconHeader KOMPLETT mit farbe oder besser BMP füllen anstatt mit einem Icon auf der rechten oder linken seite..

und soweiter und so fort...
ihr wisst glaube ich was ich versuche zu fragen...

es gibt soviele anwendungen wie iTunes (für windows) die ihre eigen stil haben... MUSS doch in purebasic mit hilfe der winapi doch möglich sein..?!!!

bitte hilft mir ....
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Schau mal auf PureArea.net bei den UserLibraries rum und such dort mal im ShowCase nach CustomButtons von GPI

greetz
remi
celli
Beiträge: 24
Registriert: 11.01.2005 18:45

Beitrag von celli »

sorry... ich glaube wir haben uns falsch verstanden...

was ich wirklich bräuchte wären chechboxes ohnen 3dRahmen und ohne den grauen hintergrund... listIcongadget ohne scrollbar und header ...
und soweiter... also eine komplette modifizierungs möglichkeit...
eigene scrollbars mit hilfe von images zeichen und damit einen container auf un ab scrollen oder eine liste....

ist auch eine hammer grosse sache ... aber ansonsten hilft das design nicht wenn die gadgets so aussehen wie sonst....

danke dir...
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

celli hat geschrieben:sorry... ich glaube wir haben uns falsch verstanden...

was ich wirklich bräuchte wären chechboxes ohnen 3dRahmen und ohne den grauen hintergrund... listIcongadget ohne scrollbar und header ...
und soweiter... also eine komplette modifizierungs möglichkeit...
eigene scrollbars mit hilfe von images zeichen und damit einen container auf un ab scrollen oder eine liste....

ist auch eine hammer grosse sache ... aber ansonsten hilft das design nicht wenn die gadgets so aussehen wie sonst....

danke dir...
Erstmal willkommen im Forum ^_^

Wie wärs wenn du dir einfach dazu eigene Buttons usw. programmierst? Diese könntest du dann nach belieben anpassen usw..
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Hast du dir meine Tipps angeschaut?
Ich denke von den CustomButtons kannst du lernen wie das gehen kann...
Ansonsten: auch von mir ein Willkommen!
celli
Beiträge: 24
Registriert: 11.01.2005 18:45

Beitrag von celli »

danke für die herzliche begrüssung... bin aber nicht neu hier... hatte nur meinen alten login vergessen...ist auch schon mehr oder weniger über 2 jahre her das ich mit purebasic beschäftigt hatte...

die buttons zu zeichnen ist schon geschehen ... ist auch nicht schwierig... hab eine eigene bibliothek für erstellt...
das problem liegt an das ändern der standard-buttons von windows.. wie die headers des listIconGadget... oder den button des dropdown menüs... also wirklich tiefes zeug... hab auch im netz und im buchhandel geschaut... aber irdgendwie gibt keiner seine methoden (tricks) frei...

wäre cool wenn mir jemand helfen könnte....

und danke nochmals für die begrüssung :wink:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

die meissten anwendungen mit eigenem stil lösen dies tatsächlich
über die verarbeitung von click-events auf selbstdesignte elemente,
nicht mit standard-buttons.
diese sind tatsächlich praktisch nicht zu verändern.

die einzige möglichkeit einer beeinflussung besteht in der veränderung
der desktop-palette, das ist aber tabu, weil es user-einstellungen
sind, die den ganzen desktop betreffen, so was 'macht man nicht' :wink:

achja, welcome back, dein altes account existiert wahrscheinlich nicht mehr,
da im sommer 2004 ein neues forum aufgestellt wurde, das alte ist jetzt das archiv
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

quatsch, das geht schon. zumindest einfärben geht relativ problemlos, ohne das irgendwas an der desktoppalette gedreht wird.
buttons sind von der windowslogik übrigens fenster, es würde mich daher nicht wundern, wenn man ihn sogar regions zuweisen kann. am besten schaust du mal im api viewer deiner wahl oder auf msdn.com nach setregion, damit kannst du dann (wahrscheinlich) schonmal die form der buttons ändern, sofern es dir gelingt den windowhandle einzelner buttons zu bekommen, was leider nicht mit WindowID() geht.
zum einfärben der buttons gibt es bestimmt schon was auf purearea.
Zuletzt geändert von Zaphod am 12.01.2005 16:37, insgesamt 1-mal geändert.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

hallo

also du kannst z.b. listicongadget() ohne header erreichen wenn du dir mal auf http://www.purearea.net die userlib MoreGadgetLibs downloadest. direktlink: MoreGadgetLibs da hast du die möglichkeiten das ListIconGadget zu verändern.
Wenn du mal auf http://www.c-n-mediaplayer.de.vu schaust und dort unter ScreenShots dann siehst du das und einiges mehr was man mit PB und nem geskinten window alles machen kann.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

hab es grade ausprobiert, man kann für gadgets anscheinend keine regionen zuweisen, was komisch ist, denn unter vb.net geht das soweit ich weiß...

vieleicht gibt dir das ja genug anhaltspunkte um es doch hinzubekommen... ich hab den teil auskommentiert, der die region dem button zuordnen sollte, als demonstration wie es mit fenstern funktioniert hab ich dass dringelassen.
ACHTUNG: regionen dürfen immer nur einem element gleichzeitig zugewiesen werden, wenn du also die region mit dem button probieren willst, die regiuonszuweisung an das fenster auskommentieren!

Code: Alles auswählen


#mybutton = 5


If OpenWindow(0, 100, 200, 250, 250, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "PureBasic Window")
  CreateGadgetList(WindowID()) 
    ButtonGadget(#mybutton,10,10,230,230,"Test button") 
  
  
  *MyRegion.RGNDATA = CreateEllipticRgn_(0, 0, 230, 230)

 
  ; scheint leider nicht mit buttons zu funktionieren
  ;SetWindowRgn_(GadgetID(#mybutton),*MyRegion, #True)
  
  
  ; setzt die region zum fenster, das fenster wird rund
  SetWindowRgn_(WindowID(0),*MyRegion, #True)

   
  Repeat
    EventID.l = WaitWindowEvent()

    If EventID = #PB_Event_CloseWindow 
      Quit = 1
    EndIf

  Until Quit = 1
  
EndIf

End
  
 
Antworten