nicht mehr als 253 buttons ?

2fast4you87

Erfahrenes Mitglied
Moin, ich soll von der Arbeit ein Ticket Programm schreiben, das soll wie folgt aussehen.
An der Abendkasse hat man einen Saal Plan (30 * 30 Matrix) und man sieht welcher Platz noch frei ist und welcher nicht (roter Button und grüner Button ...). Wenn in platz frei ist kann man den button anklicken der schickt eine 0 zum mysql server, dieser speichert das per Uptdate bedingung in der DB ab. Dann wird das fenster Aktualisiert und weil in der DB eine 0 steht wird der button anstatt grün rot (belegt).
Mein Problem ist das ich in vc++ nicht mehr als 253 Buttons erstellen kann, die frage ist aber jetzt wie kann ich das sonst machen? Mit Radio oder Option Buttons sieht das blöd ist, weil das alles Farbig dargestellt werden muss. Nacher kommen noch andere Farben hinzu wie gelb für reserviert ....
Könnt ihr mir weiterhelfen ?
 
Wie äußert sich das, dass du nicht mehr als 253 Buttons erstellen kannst? Von einer solchen Begrenzung habe ich bisher noch nichts gewusst.

Gruß
MCoder
 
moin


Es gibt ne alternative zu Bottons. Ich hab das mal für ein Minensuchen Spiel benutzt.
Das geht dann auch um einiges schneller als so viele Buttons! Muss nochmal gucken wie das hiess.


mfg
umbrasaxum
 
Eine mögliche Lösung:

1. MAche ein großes Static-Feld und setz das auf SS_NOTIFY und SS_OWNERDRAW

2. Baue eine eigene Zeichenroutine die auf dem Staticfeld Rechtecke zeichnet für die Plätze, die entweder rot oder grün sind.

3. Da Du SS_NOTIFY gesetzt hast kommt eine STN_CLICKED Nachricht wenn jemand auf das Static clicked. Jetzt kannst Du mit GetCursorPos die Mausposition abfragen und mit ein wenig Mathe ausrechnen welches Deiner Felder geclicked wurde.
 
Danke für eure Antworten nur könntet ihr ein oder zwei beispiele machen ?

p.s. das ich keine buttons mehr erstellen kann äußert sich so das ich einfach keine mehr zeichnen kann auch kein optionsfeld oder radiobutton mehr -.-
 
Moin moin,

folgender Code-Schnipsel stammt aus ner DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) Funktion aus meiner CMyButton:CButton klasse..
Der ist stark gekürzt und soll nur als Anregung dienen:) Erklärungen gibts bei den MSDN's :google:

Code:
	UINT uStyle;
	uStyle = DFCS_BUTTONPUSH;

	if (lpDrawItemStruct->itemState & ODS_SELECTED)//gedrückt
	uStyle |= DFCS_PUSHED;
	
	GetClientRect(&rect);
	pDC->DrawFrameControl(&rect, DFC_BUTTON, uStyle);
Hoffe es hilft weiter...

Gruss Michael
 
2fast4you87 hat gesagt.:
das ich keine buttons mehr erstellen kann äußert sich so das ich einfach keine mehr zeichnen kann auch kein optionsfeld oder radiobutton mehr
Wie zeichnest du die Buttons denn, mit dem Ressourceneditor oder programmtechnisch (via Create)? Bei der programmtechnischen Variante (gerade mal kurz getestet) habe ich jedenfalls keine Probleme, mehr 253 Buttons zu erzeugen. Mit dem Resourceneditor its's eh zu mühselig :)

Gruß
MCoder
 
Habe so etwas gefunden, nur er stellt das nicht dar, wo muss ich das einfügen, oder ist das ga nicht das richtige
Code:
CButton buttonGroesse;
	buttonGroesse.Create("My button", WS_VISIBLE|BS_PUSHBUTTON, 
		CRect(0,10,50,30), this, 1);
 
Zurück