Button "Ein" und wieder "Aus" schalten?

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

EPS

Betreff: Button "Ein" und wieder "Aus" schalten?

BeitragDi, Nov 27, 2007 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi zusammen,

ist es möglich - auch mit API - einem normalen Button zu verklickern das er sich wie eine CheckBox verhält, man ihn also beim ersten mal anklicken "Ein" schaltet und beim zweiten mal anklicken "Aus" schaltet?

In meinen eigenen Versuchen bin ich nämlich gescheitert und ich hab nirgends was dazu gefunden.

BTW. Ihn manuell "Ein" bzw. "Auszuschalten" hab ich herausgefunden. Dies geht per:

api_SendMessage( QueryObject( btn, 1 ) , BM_SETSTATE....

Allerdings muß ich hierbei den momentanen Status selbst erfassen da man diesen nicht abfragen kann. Wäre bei einem Button nicht so schlimm, aber bei mehreren ziemlich doof. Da müsste man wieder mit Types oder Arrays arbeiten etc.

Desweiteren ergibt sich hierbei das Problem das man zwar auf den Button klicken, dann aber die Maus wegbewegen kann. Wobei sich zwar das Aussehen des Buttons ändert, jedoch nicht der Status verändert wird - da ja kein Event ausgelöst wurde. Was wiederum bedeutet das der Button nun z.B. ausgeschaltet aussieht, jedoch noch immer eingeschaltet ist.

Daher wäre es wesentlich einfacher wenn Windows das vielleicht ganz von sich kann.

Danke schonmal
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Silver_Knee

BeitragDi, Nov 27, 2007 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
bei createbutton:
Arrow Createbutton(.....,2)
Arrow ButtonState()
Arrow SetButtonState()

oder willst du einen normalen button in gedrückter position malen ich glaub da kommt man um n canvas dingens net rum
 

ChristianK

BeitragDi, Nov 27, 2007 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, kommt man.

Allerdings muss man dafür BlitzPlus "austricksen", denn normalerweise werden Checkboxen und Radiobuttons nicht von Windows umgeschaltet. Das muss das Programm selbst machen.
Erstelle also eine Checkbox ( damit BlitzPlus das Umschalten übernimmt ) und füge mit SetWindowLong den Stil BS_PUSHLIKE hinzu.

Code: [AUSKLAPPEN]
Local prev_long = GetWindowLongA( hwnd, GWL_STYLE )
SetWindowLongA( hwnd, GWL_STYLE, prev_long Or BS_PUSHLIKE )
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

EPS

BeitragDi, Nov 27, 2007 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, funzt an sich ganz gut. Nur beim ersten Start sieht es noch wie eine CheckBox aus. Muß bzw. kann man da noch eine Art ReDraw auslösen damit es gleich wie ein Button aussieht?
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group