Fragen zu Farben eines EditFeldes.



  • Hallo alle zusammen,

    folgende Situation:

    Ich habe ein EditFeld und in diesem steht ein Text. Wenn ich nun dieses per "EnableWindow" sperre dann ändert sich das Feld wie folgt:

    - die Schriftfarbe wird grau,

    - der Hintergrund der Schrift wird grau, (soweit so gut) aber...

    - das restliche Feld ist weis...

    Dies sieht nicht gut aus und ist unakzeptabel. Also habe ich mir gedacht ich verändere die Füllfarbe einfach selbst. Dies hat dann mit Hilfe von einem anderen Forum auch super geklappt. Man sieht kaum einen unterschied. Was nur die halbe wahrheit ist. Wird meine programmierte DLL von einer anderen Schnittstelle oder Betriebsystem aufgerufen so sieht die Füllfarbe anderst aus. Also je nach Betriebsystem und Schnittstelle. Ich hoffe die Situation ist verstanden.

    Meine Fragen nun dazu:

    - Gibt es eine Möglichkeit die "EnableWindow" - Color zu ermitteln? Wenn ja wie?

    - Gibt es eine Möglichkeit das EditFeld zu sperren aber so das auch das ganze EditFeld grau ist und nicht nur der Text?

    Über Antworten würde ich mich sehr freuen.

    Gruß rudi



  • Rudi100 schrieb:

    - Gibt es eine Möglichkeit das EditFeld zu sperren aber so das auch das ganze EditFeld grau ist und nicht nur der Text?

    Das ist der Standard - was hast du für ein seltsames Edit? 😕

    Die Farbe kriegst du mit

    GetSysColor(COLOR_BTNFACE)
    

    🙂



  • Mittels:

    CEditVariable.EnableWindow(FALSE);

    So sperre ich das EditFeld. Mir ist im Nachhinein aufgefallen das ich eine OnCtlColor Funktion habe in welcher ich die Textfarbe des Editfeldes festlegen. Wenn ich jedoch die stelle auskommentiere wo die farbe geändert wird geht es ganz normal. Verstanden?

    Erkläre mir das bitte etwas genauer mit der GetSysColor(...),

    Was gibt die Funktion zurück etc...
    Wwas kommt in die Klammern usw...



  • Ich lass die MSDN mal erklären: *klick*

    Das kannst du dann einfach als Farbangabe verwenden:

    pDC->SetBkColor(GetSysColor(COLOR_BTNFACE));
    

Anmelden zum Antworten