Selbstgemachte Control-Buttons
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
hm... danke soweit, aber ein Callback war eigentlich nicht was mir vorschwebte...
eine einfache zuweisung über diese WS_STYLE geschichten wäre das gesuchte gewesen.
bleibt die restliche Funktionalität der Buttons denn ungebrochen, wenn man die SetFocus MSG einfach verschluckt?
eine einfache zuweisung über diese WS_STYLE geschichten wäre das gesuchte gewesen.
bleibt die restliche Funktionalität der Buttons denn ungebrochen, wenn man die SetFocus MSG einfach verschluckt?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Also beide Skins sind auf den selben Rechner. Ich habe mich auch gefragt warum ChaNinja den Webdings-Font nicht annimmt. Habe aber keine Ahnung warum dass so ist.@marroh
> ChaNinja Skin
das is ja interessant... wieso disabled der skin die Webdings?
dass du die Font hast zeigt ja der andere Skin...
oder sind die shots von verschiedenen rechnern?
wenn ja, schau doch mal bitte nach, ob die Font auf dem Rechner mit dem Ninja skin überhaupt vorhanden ist...
Gruss
Martin
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ok.. danke für die Info...
ich werde mir da keine weiteren Sorgen machen, wenn ein User einen Skin benutzt, der nicht zu den Basis-OS-Funktionen wie "Schriftart einstellen" kompatibel ist, hat er eben eingeschränkte Funktionalität.
ich werde mir da keine weiteren Sorgen machen, wenn ein User einen Skin benutzt, der nicht zu den Basis-OS-Funktionen wie "Schriftart einstellen" kompatibel ist, hat er eben eingeschränkte Funktionalität.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Du kannst mit folgendem Code verhindern das man zwischen den Buttons mit der TAB-Taste wechseln kann und somit der Auswahlrahmen jedesmal neu gesetzt wird.Kaeru Gaman hat geschrieben:hm... danke soweit, aber ein Callback war eigentlich nicht was mir vorschwebte...
eine einfache zuweisung über diese WS_STYLE geschichten wäre das gesuchte gewesen.
Code: Alles auswählen
For i=0 To 3
SetWindowLong_(GadgetID(i),#GWL_STYLE,GetWindowLong_(GadgetID(i),#GWL_STYLE) ! #WS_TABSTOP)
Next
Absolut. Der Auswahlrahmen wird durch das Callback komplett entfernt aber du kannst trotzdem noch zwischen den buttons mit der TAB-Taste switchen (sofern das im Einzelfall gewollt ist).Kaeru Gaman hat geschrieben:Bleibt die restliche Funktionalität der Buttons denn ungebrochen, wenn man die SetFocus MSG einfach verschluckt?
Windows 10 Pro, 64-Bit / Outtakes | Derek
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Muss nicht unbedingt ein Button sein. Kann auch ein Text mit SS_NOTIFY werden.
FF 
Code: Alles auswählen
#Window = 0
Enumeration
#Button1
#Button2
#Button3
#Button4
EndEnumeration
#Font_Webdings = 0
If Not LoadFont( #Font_Webdings, "Webdings", 48 )
MessageRequester( "Error", "Can't open Font 'Webdings'.", #MB_ICONERROR )
EndIf
If Not OpenWindow( #Window, #PB_Ignore, #PB_Ignore, 336, 96, "Button Test")
MessageRequester( "Error", "Can't open a Window...?", #MB_ICONQUESTION )
EndIf
CreateGadgetList( WindowID( #Window ) )
TextGadget ( #Button1, 16, 16, 64, 64, Chr( $30 ) , #SS_CENTER | #SS_NOTIFY); | #SS_SUNKEN)
SetGadgetFont ( #Button1, FontID( #Font_Webdings ) )
ButtonGadget ( #Button2, 96, 16, 64, 64, Chr( $32 ) )
SetGadgetFont ( #Button2, FontID( #Font_Webdings ) )
ButtonGadget ( #Button3, 176, 16, 64, 64, Chr( $31 ) )
SetGadgetFont ( #Button3, FontID( #Font_Webdings ) )
ButtonGadget ( #Button4, 256, 16, 64, 64, Chr( $72 ) )
SetGadgetFont ( #Button4, FontID( #Font_Webdings ) )
Repeat
EvID = WaitWindowEvent()
Select EvID
Case #PB_Event_Gadget
Select EventGadget()
Case 0 : Debug "Schalter 0 angeklickt!"
Case 1 : Debug "Schalter 1 angeklickt!"
Case 2 : Debug "Schalter 2 angeklickt!"
Case 3 : Debug "Schalter 3 angeklickt!"
EndSelect
EndSelect
Until Evid = #PB_Event_CloseWindow

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
danke für das NOTIFY Flag... und auch für das CENTER, das zentriert wohl auch Vertikal.
muss mir wohl die ganzen SS_ konstanten mal reinziehen...
... aber für den Zweck ist das nich so dolle, es soll ja ein Button sein.
da würde ich wohl eher noch mit dem focusrahmen leben...
muss mir wohl die ganzen SS_ konstanten mal reinziehen...
... aber für den Zweck ist das nich so dolle, es soll ja ein Button sein.
da würde ich wohl eher noch mit dem focusrahmen leben...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Mit #WM_KILLFOCUS verliert man den Rahmen
FF 
Code: Alles auswählen
#Window = 0
Enumeration
#Button1
#Button2
#Button3
#Button4
EndEnumeration
#Font_Webdings = 0
If Not LoadFont( #Font_Webdings, "Webdings", 48 )
MessageRequester( "Error", "Can't open Font 'Webdings'.", #MB_ICONERROR )
EndIf
If Not OpenWindow( #Window, #PB_Ignore, #PB_Ignore, 336, 96, "Button Test")
MessageRequester( "Error", "Can't open a Window...?", #MB_ICONQUESTION )
EndIf
CreateGadgetList( WindowID( #Window ) )
ButtonGadget ( #Button1, 16, 16, 64, 64, Chr( $30 ))
SetGadgetFont ( #Button1, FontID( #Font_Webdings ) )
ButtonGadget ( #Button2, 96, 16, 64, 64, Chr( $32 ))
SetGadgetFont ( #Button2, FontID( #Font_Webdings ) )
ButtonGadget ( #Button3, 176, 16, 64, 64, Chr( $31 ) )
SetGadgetFont ( #Button3, FontID( #Font_Webdings ) )
ButtonGadget ( #Button4, 256, 16, 64, 64, Chr( $72 ) )
SetGadgetFont ( #Button4, FontID( #Font_Webdings ) )
Repeat
EvID = WaitWindowEvent()
Select EvID
Case #PB_Event_Gadget
gadget = EventGadget()
Select gadget
Case #Button1 To #Button4
SendMessage_(GadgetID(gadget), #WM_KILLFOCUS, 0,0)
EndSelect
Select gadget
Case #Button1 : Debug "Schalter 1 angeklickt!"
Case #Button2 : Debug "Schalter 2 angeklickt!"
Case #Button3 : Debug "Schalter 3 angeklickt!"
Case #Button4 : Debug "Schalter 4 angeklickt!"
EndSelect
EndSelect
Until Evid = #PB_Event_CloseWindow

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
hm... ok. immerhin ohne Callback, in die normale Abfrage integrierbar...
aber leider taucht der Rahmen kurz auf, das ist die Callback-lösung eher chique...
ok... danke für die ganzen backgroundinfos, insgesamt wirklich hilfreich.
aber leider taucht der Rahmen kurz auf, das ist die Callback-lösung eher chique...
ok... danke für die ganzen backgroundinfos, insgesamt wirklich hilfreich.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.