Text im Dialog



  • Hi!
    Da ich ja solange nichts mehr mit MFC gemacht habe, muss ich mal wieder für etwas Simples bei Euch nachfragen:

    Ich möchte einen kurzen Text vor weißem Hintergrund in meinem Dialog darstellen. Welches Steuerelement nehme ich am besten dafür? Ein Static Feld ist grau (kann man das ändern?). Ein Editfeld ist zwar weiss, aber es ist nicht readonly (ich will ja nur darstellen). Hat jemand einen Tip für mich? 😕

    Schonmal Thx für alle Hinweise! 🙂

    Gruss Teja



  • Grüß dich,

    such mal nach CColorStatic. Diese Klasse ermöglich es Static Elementen Farben zuzuweisen oder die Textfarbe anzupassen, dies sollte dies erfüllen, was du dir wünschst.



  • Da fallen mir zwei Möglichkeiten ein:

    1.) Du nimmst ein Static und änderst die Hintergrundfarbe. Anleitungen dazu sollte es spätestens in der FAQ geben.

    2.) Du nimmst ein Edit und schreibst dazu eine eigene Klasse, in der dann alle Tastendrücke verschluckt werden. Eine Anleitung dazu solltest du auf www.codeproject.com finden.



  • Aloha,

    brauchst net lange suchen.

    Ist ne kurze Sache :

    1. Nimm ein Static für das Ausgabefeld, ein Editfeld ist zum Editieren da, das wäre Hackerscheiße...
    2. Lege Dir ne CBrush - Membervariable an ( bei mir elemente_farbe im code unten)
    3. initialisiere diese im Konstruktor

    elemente_farbe.CreateSolidBrush(RGB(255,255,255));
    

    4. Zerstöre den Brush im Destruktor

    elemente_farbe.DeleteObject();
    

    5.Füge folgende Methode Deinem Dialog hinzu

    HBRUSH CChange_Firma::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    switch (nCtlColor) 
    { 
    
    case CTLCOLOR_STATIC:
    	{
    
     		pDC->SetBkMode(TRANSPARENT);		// Setzt den Hintergrund, dort wo Text ist transparent, 
    											// so daß elemente_farbe auch hinter den Zeichen ist			
    		hbr = (HBRUSH) elemente_farbe;		// Setzt die Farbe für den Hintergrund des Elements
    		break;
    
    	}
    
    }
    
    return hbr;
    }
    

    Et voila alles weiß

    Grüße

    BOA



  • He Klasse, da haben wir ja schonmal ein paar Ideen!
    Irgendwie ist mir BOA's Ansatz am sympatischsten, werd's gleich mal checken... 😉 Thx erstmal!

    Gruss Theo



  • Hi,

    wie wärs mit "Handarbeit"? Einfach WM_PAINT überschreiben und dann mit CPaintDC austoben 😃 😃

    Grüße Rapha


Anmelden zum Antworten