Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo erstmal!

Ich hab folgendes Problem:

Ich benutze Buttons zum Anzeigen von Statusinformationen. Der Button ändert je nach Statusinformation seine Farbe (rot, gelb, grün).

Der Benutzer soll den Button nicht anklicken können. Den Button einfach zu deaktivieren haut nicht hin, da er in dem Fall keine Farbe mehr anzeigt (ist ja logisch).

Habe mir schon etliche MFC - Methoden dazu angeschaut, aber bis jetzt war keine passende dabei.

Hat von euch jemand eine Idee :confused:

Geschrieben
Ich benutze Buttons zum Anzeigen von Statusinformationen.
Das ist IMHO für sich genommen schon ein Fehler im UI-Design. Warum benutzt du keine Bitmaps o.ä.?

Der Benutzer soll den Button nicht anklicken können.
Grundsätzlich nicht? Wieder ein Grund, eben keinen Button zu benutzen. Du kannst natürlich auch in der Nachrichtenbehandlungsfunktion des Buttons (gegebenenfalls abhängig vom Status) einfach nichts tun.
Geschrieben

1. Ich arbeite in einem Projekt, wo festgelegt wurde, dass man halt Buttons zum Anzeigen des Status nimmt. Kann ich nix für ^^

2. Klar könnte ich jetz in die einzelne Meldungsroutine des Buttons gehen und da rummurksen. Problem ist, ich habe ca. 30 solcher Statusbuttons! Jeden einzeln anzupassen ist also nicht so optimal.

Trotzdem erstmal danke.... >.<

Geschrieben
1. Ich arbeite in einem Projekt, wo festgelegt wurde, dass man halt Buttons zum Anzeigen des Status nimmt. Kann ich nix für ^^
Dann lege ich dir nahe, die Verantwortlichen zumindest auf diesen Designfehler hinzuweisen. Siehe auch: http://homepage.mac.com/bradster/iarchitect/shame.htm

2. Klar könnte ich jetz in die einzelne Meldungsroutine des Buttons gehen und da rummurksen.
Hat denn jeder Button eine solche Funktion? Gibt es also auch Zustände, in denen diese Buttons etwas tun?

Falls nicht, ist doch alles in Ordnung.

Problem ist, ich habe ca. 30 solcher Statusbuttons!
30 Buttons klingt auch nach einem Designproblem.

Jeden einzeln anzupassen ist also nicht so optimal.
Das kommt eben dabei raus, wenn man das falsche Werkzeug benutzt. Du willst einen Button, der nicht wie ein Button aussieht und sich nicht wie ein Button verhält. Eigentlich willst du gar keinen Button. Du nimmst aber trotzdem einen Button. Dann darfst du dich nicht wundern, dass du dich ziemlich verrenken musst, bis das so läuft, wie du es willst.
Geschrieben

Das es nun ein Designfehler ist, haben wir ja nun festgestellt. Es hilft mir aber wenig weiter, wenn du weiter darauf rumreitest. Der Verantwortliche weiß, dass es nicht optimal ist Buttons zu verwenden. Aber das zu ändern wäre zu umfangreich. Außerdem ist es vom rein optischen her nicht weiter schlimm.

Zu der Anzahl der Buttons: jeder Button stellt eine Komponte bzw. deren Status dar, deshalb sind es von der Anzahl her einige...

Es ist halt nur das eine Problem, dass der User diese Buttons anklicken kann. Das ist halt Standard bei Buttons (wie du wiederholt festgestellt hast, ein Designfehler). Aber es muss doch eine Möglichkeit geben, das abzustellen!

Ich könnte jetz in der Standard OnBnClicked... - Methode versuchen eine Routine zu installieren, die den Button wieder in den Ursprungszustand versetzt. Aber das müsste ich bei jedem Button extra machen, deshalb kommt das nicht in Frage!

Geschrieben

Ach so, du willst nicht nur, dass der Button nichts tut, wenn er angeklickt wird, sondern du willst auch die Anklick-Animation verhindern?

Das ist nicht so einfach möglich. Es wäre wohl möglich, CBitmapButton zu verwenden, oder die Buttons komplett selbst zu zeichnen. Aber einem normalen Button wirst du das kaum auf einfachem Wege beibringen.

Geschrieben

Der Button tut ja schon nix wenn man ihn anklickt... dafür ist gesorgt :)

Für dich als Info: Verwendet wird eine Klasse namens ClrButton, die von CButton erbt. Ist also schon nicht die originale Klasse. Hier mal der Link auf CodeGuru:

http://www.codeguru.com/cpp/controls/buttonctrl/article.php/c5169/

Anscheinend hat der Programmierer, der diese Buttons implementiert hat, gefallen daran gefunden. Ich kanns nicht nachvollziehn, habe jetzt nur das Problem mit den Dingern. :(

Hast du eine Idee, welche Methode ich manipulieren oder überschreiben kann um das Anklicken zu verhinden?

Geschrieben

Aktualisierung:

Wenn ich in der DrawItem-Methode folgendes mache:

this->SetState(FALSE);

kann man die Buttons nicht mehr anklicken :D

einziges Problem was übrig bleibt: die Buttons bekommen noch den Fokus! Wär schön wenn man das auch noch abstellen kann... :eat:

Geschrieben

Das mit dem Designfehler wurde Dir ja bereits von Klotzkopp gesagt. Da Du, bzw. Dein Verantwortlicher nun trotzdem daran festhalten, wird er Dir sicher auch sagen können, wie Du einen Button mit weniger Aufwand zu einer Status-Bitmap degradierst, als 30 Steuerelemente durch eine besser geeignete Alternative auszutauschen. *kopfschüttel*

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...