locked
Windows Standard-Colour-Selector Fehler

    Frage

  • Hallo liebe Community,

     

    ich versuche nun schon seit einigen Tagen eine Lösung für folgendes Problem zu finden:

     

    Viele Programme (darunter auch MS Paint) verwenden einen standardisierten Colour-Selector-Dialog (der meines Wissens über die comdlg32.dll) aufgerufen wird. Wenn ich nun versuche für die R(ed), G(reen),B(lue)-Werte in der Edit-Box des Dialogs einzugeben dann akzeptiert die Edit-Box nur zwei Stellen (0-99). Ich kann keine Farbwerte eintragen die in den Bereichen 100-255 liegen. Sobald ich versuche die dritte Ziffer einzugeben ertönt der System-"Bing" als Hinweis das kein weiteres Zeichen (Ziffer) eingetragen werden kann. Dies Verhalten zeigt sich in allen Applikationen die den Standard-Colour-Selector von Windows verwenden.

    3 Dinge sind mir noch aufgefallen;

    1. Wenn der Dialog geöffnet wird dann zeigt der Dialog einen dreistelligen Wert in den Edit-Boxen an. Auch über die interaktive Farbauswahl kann der Wert verändert/erhöht werden (bis 255). Leider ist es umöglich mit der interaktiven Farbauswahl eine genaue Farbauswahl zu treffen (z.B. R=240,G=240,B=240).

    2. Der Text-Cursor verhält sich ebenfalls etwas seltsam in diesen Edit-Boxen. Wenn der Dialog geöffnet ist und man dann mit dem Textcursor über den schon voreingestellten 3-stelligen Wert "fährt". Dann sieht es so aus stehe der Cursor in der Mitte der letzten Ziffer obwohl er am Ende der Ziffer stehen sollte.

    3. Der "neue" Colour-Selector der mir schon in einigen Programmen begegnet ist funktioniert einwandfrei. Mit dem "neuen" Colour-Selector meine ich den Colour-Selector mit den "Bienenwabenähnlichen"-Farb-Preset-Feldern.

    Ich habe bereits einen Eintrag im Englisch-sprachigen Forum verfasst, bisher jedoch noch keine Lösung erhalten. Ausserdem habe ich noch folgende zwei Foren-Einträge gefunden die sich auf das selbe Problem beziehen.

    http://www.sevenforums.com/general-discussion/96918-problem-entering-rgb-values-color-picker-2.html

    http://social.answers.microsoft.com/Forums/en-US/w7desktop/thread/9f60af8f-3ece-45cf-b249-436030822519

     

    Ich wäre dankbar wenn jemand eine Lösung finden könnte. Meine Vermutung liegt , wie schon weiter oben erwähnt, in einer fehlerhaften comdlg32.dll. Dies könnte bedeuten dass sich ein Microsoft-Developer des Problems annehmen müsste.

    Allerdings würde ich sonst gerne eine "Neuinstallation" der comdlg32.dll versuchen. Wo bekomme ich die Datei und ist es eine sichere Prozedur solche dll-Datein zu ersetzen. Würde eine "Neuinstallation" des .net-frameworks diese Datei mit einer neueren comdlg32.dll ersetzen?

    PS: Ich benutze Windows Vista Ultimate 32bit

     

    Vielen Dank im Voraus für Eure Unterstützung. Bin ein bisschen am verzweifeln da ich doch schon einiges versucht habe um dieses wirklich seltsame Problem zu lösen.

     

    Grüsse

     

    jahkri

    Mittwoch, 17. November 2010 15:09

Antworten

  • Ist der Fehler in allen anderen Programmen unter Vista nachvollziehbar?

    Dir geht es um diesen Dialog, der durch ChooseColor aufgerufen wird?
    http://msdn.microsoft.com/en-us/library/ms646829(VS.85).aspx#choosing_color

    Hast Du schonmal versucht ein Custom-Template zu definieren? Evtl. fehlt in den Controls nur ein AUTOHSCROLL Stil in der Edit Box.
    Du könntest das mal mit Spy++ ermitteln.

    Du könntest Dir über den Hook auch evtl. die Handles dieser Controls besorgen und den Stil nachträglich hinzufügen. (ModifyStyle)
    Leider habe ich kein Vista mehr um das zu testen.

    Ansonsten würde ich Dir bei so etwas dringend raten den MS-Support zu kontaktieren. Wenn Du ein MSDN Abo hast oder Certified Partner bist, dann hast Du entsprechende Support Anfragen frei.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Freitag, 19. November 2010 08:17