FallenHammer Geschrieben 3. Juli 2006 Teilen Geschrieben 3. Juli 2006 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 3. Juli 2006 Teilen Geschrieben 3. Juli 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FallenHammer Geschrieben 3. Juli 2006 Autor Teilen Geschrieben 3. Juli 2006 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.... >.< Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 3. Juli 2006 Teilen Geschrieben 3. Juli 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FallenHammer Geschrieben 3. Juli 2006 Autor Teilen Geschrieben 3. Juli 2006 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 3. Juli 2006 Teilen Geschrieben 3. Juli 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FallenHammer Geschrieben 3. Juli 2006 Autor Teilen Geschrieben 3. Juli 2006 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FallenHammer Geschrieben 3. Juli 2006 Autor Teilen Geschrieben 3. Juli 2006 Aktualisierung: Wenn ich in der DrawItem-Methode folgendes mache: this->SetState(FALSE); kann man die Buttons nicht mehr anklicken einziges Problem was übrig bleibt: die Buttons bekommen noch den Fokus! Wär schön wenn man das auch noch abstellen kann... :eat: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FallenHammer Geschrieben 3. Juli 2006 Autor Teilen Geschrieben 3. Juli 2006 Thread kann geschlossen werden, habe das mit dem Fokus auch noch hingekriegt. Danke an Klotzkopp für den Tipp mit dem Selbstzeichnen ! :cool: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 3. Juli 2006 Teilen Geschrieben 3. Juli 2006 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* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.