Static Text Farbe



  • Hallo,
    ich habe eine (oder zwei 🙂 Fragen. Ich nutze Visual Studio.net und wollte nun die Textfarbe eines statischen Textes ändern? Ich habe viel geuscht habe nun 2 Fragen:

    Zum einen lese ich oft, das man die Farbe in den Properties ändern kann... aber ich kann hier beim besten willen leider keine Einstellung zur Schift(-Farbe) finden..

    Und zweitens habe ich mir hier schon eine Threads durchgelesen, verstehe aber nicht wirklich, wie ich einfach die Textfarbe im Code ändern kann... z.B. Fehler(rot) und OK (grün).

    danke



  • mal die suchfunktion benutzen oder die MSDN lesen -> Stichwort: ON_WM_CTLCOLOR



  • hi, das hab ich schon angeguckt, weil ichs in nem anderen thread gelesen habe... aber ich kann damit leider nichts anfange -sorry



  • Schreib das hier in die WM_CTLCOLOR

    if (pWnd->GetDlgCtrlID() == ID_DEINES_STATICS) 
        { 
            pDC->SetTextColor(RGB(0,0,255)); // Setzt die Textfarbe auf blau 
            HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0)); //Setzt die Hintergrundfarbe auf rot 
            return (HBRUSH) hBrush; 
        }
    

    Gruß
    :: NoName ::



  • :)) ich erstelle dann bei Message das WM_CTLCOLOR, oder? und dann schreibe ich den Code darein... aber wie sage ich dem Button nun, das der Text umgefärbt werden soll?



  • Hmm, die WM_CTLCOLOR erstellst du einfach mit dem ClassWizard.
    Und danach fügst du den Code dort ein.

    dahein2 schrieb:

    aber wie sage ich dem Button nun, das der Text umgefärbt werden soll?

    Also, durch das If-Statement

    if (pWnd->GetDlgCtrlID() == ID_DEINES_STATICS)
    

    fragst du schon ab, welches Control gefärbt werden soll. Und dann kannst du mit
    SetTextColor(RGB(255,0,0)) die Textfarbe ändern...

    Oder verstehe ich das falsch und du willst erst nach einem Buttonclick den Text färben...?

    Gruß
    :: NoName ::



  • Oder verstehe ich das falsch und du willst erst nach einem Buttonclick den Text färben...?

    genau :)))

    danke



  • bzw.. in nem if statement. halt jenachdem - aber sollte ja das gleiche sein, oder?



  • Hmm, kommt darauf an was genau du machen willst. Möchtest du den Benutzer aussuchen lassen welche Farbe das Textfeld hat...?

    Gruß
    :: NoName ::



  • hmm
    nein, ich habe folgendes

    status(int wert) 
    
    if(wert)
      {
         statischeText="Fehler";
         UpdateData(FALSE);
       }
    
    else
      {
         statischeText="OK";
         UpdateData(FALSE);
      }
    

    und ich hätte gerne de Wortre FEHLER und OK gerne in rot bzw. rün--



  • Dann mach es so

    if(pWnd->GetDlgCtrlID() == ID_DEINES_STATICS)
    	{
    		if(statischeText == "OK")
    		{		
    			pDC->SetTextColor(RGB(0,190,0));
    		}
    		else
    		{
    			pDC->SetTextColor(RGB(255,0,0));
    		}
    	}
    

    Die Farbe ändert sich dann automatisch, wenn in statischeText "OK" oder "Fehler" steht...

    Gruß
    :: NoName ::



  • danke, klappt super
    vielen vielen Dank


Anmelden zum Antworten