Windows-API: Button-Typ ändern?

...komplette Frage anzeigen Button Samples (Quelle: MSDN, http://i.msdn.microsoft.com/dynimg/IC510609.png) - (Computer, PC, Windows)

1 Antwort

Laut www.blitzforum.de/help/CreateButton gibt es nur 5 verschieden Typen. Was die Windows-Funktion alles kann ist auf der MSDN beschrieben. Als Link zum Merken und nachschauen (bzw. eintippen: MSDN.microsoft.com/library). Führt dann z.B. zu

msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspx

Ansonsten wäre es sicher zielführender in der BlitzBasic Community nachzufragen

Hallo,

Erstmal Vielen Dank für deine Antwort.

Laut (Link wegen Spamverdachts entfernt) gibt es nur 5 verschieden Typen.

Ja, aber unter ganz Windows gibt es halt noch mehr!

Als Link zum Merken und nachschauen (bzw. eintippen: (Link wegen Spamverdachts entfernt)). Führt dann z.B. zu

(Link wegen Spamverdachts entfernt)

Das habe ich mir angeschaut. Zitat:

nIndex [in]

[...]

GWL_STYLE (-16) - Sets a new window style. (msdn. microsoft. com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx)

Das trifft es, wenn man Buttons als Windows interpretiert!
Das hilft mir, den oben genannten nicht selbst entwickelten Befehl zu verstehen:

SetWindowLong(button, -16, GetWindowLong(button, - 16) + 7

Das heißt, der window style wird auf den alten window style + 7 abgeändert, oder? Aber andererseits habe ich gedacht - und auch erfolgreich probiert - dass ich z.B. einen Minimieren-Button durch den Befehl hinzufüge:

SetWindowLong(hwnd, -16, GetWindowLong(hwnd, -16) Or 0x00020000)

Was aber soll + 7 da bedeuten? Setze Bits 1, 2 und 4 auf 1? Diese Werte sind in der Liste nicht aufgeführt!

Allerdings habe ich in den Nutzer-Ergänzungen Folgendes gefunden:

Button Control Styles (e.g. BS _ DEFPUSHBUTTON = 0x00000001L, BS _ CHECKBOX = 0x00000002L, BS _ AUTOCHECKBOX = 0x00000003L, etc. declared in "winuser.h") (details at: " http://msdn.microsoft.com/en-us/library/bb775951(v=vs.85)")

Aha! Diese Seite enthält eine lange Liste mit Konstanten wie BS _ 3STATE oder auch BS _ GROUPBOX (das könnte die 7 sein!). Und der gewünschte Command Link (⇒ BS _ GROUPBOX) ist auch dabei!

An dieser Stelle bräuchte ich jemanden, der Visual Basic oder was man da braucht, um diese winuser.h zu haben, hat, und mir die Konstanten als Zahlen geben könnte!

Ich habe es einmal selbst versucht (nach dem Verfahren + 7) und bin auf folgende Ergebnisse gestoßen:

0   Button
1   Standard Button (?)
2   CheckBox
3   AutoCheckBox
4   RadioButton
5   CheckBox (?)
6   AutoThreeStateCheckBox
7   GroupBox
8   [Away!]
9   AutoRadioButton (?)
10  Label [Blitz does not check the permutation] (?)
11  [Away!]
12  SplitButton (?)
13  SplitButton (?)
14  [Away!] (?)
15  [Away!] (?)

Toll, die Three-State-Checkbox bekomme ich so schon hin! :-) Allerdings kann ich mit BlitzBasic-Befehlen für Buttonstates den 3. Status nicht beachten, das erfordert ebenfalls Recherchearbeit :(
Split-Button: Da muss ich noch schauen, wie man das Menü angeht.
Command Link habe ich auch noch nicht geschafft.

Das ist ja schon mal ein beträchtlicher Fortschritt!
Jetzt würde ich mich sehr über weitere Hilfe freuen.

Mit freundlichen Grüßen,
KnorxThieus (m)

0

Was möchtest Du wissen?