Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - MFC ::  CEdit - Hintergrund komplett färben     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Lexaja
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2005
Beiträge: 154
Beitrag Lexaja Mitglied 11:10:42 11.05.2007   Titel:   CEdit - Hintergrund komplett färben            Zitieren

Hallo zusammen,

ich habe gerade den Hintergrund einiger Textfelder mit
Code:
if(nCtlColor == CTLCOLOR_STATIC)
    {
      // Hintergrund für Text setzen
      pDC->SetBkColor(RGB(204,228,253));
      // Textfarbe ändern
    }
Code:
if(nCtlColor == CTLCOLOR_STATIC)
{
// Hintergrund für Text setzen
pDC->SetBkColor(RGB(204,228,253));
// Textfarbe ändern
}
Code:
if(nCtlColor == CTLCOLOR_STATIC)
    {
      // Hintergrund für Text setzen
      pDC->SetBkColor(RGB(204,228,253));
      // Textfarbe ändern
    }

gefärbt. Manche Felder sind allerdings größer als der Bereich, wo wirklich Text steht. Es wird aber nur der Hintergrundbereich eingefärbt, wo auch Text steht? Der Rest der Textbox bleibt grau. Wie ändere ich das?
Danke schonmal.
LG,
Lexaja


Zuletzt bearbeitet von estartu am 14:09:19 15.05.2007, insgesamt 2-mal bearbeitet
Werbeunterbrechung
~Airdamn
Unregistrierter




Beitrag ~Airdamn Unregistrierter 12:17:22 11.05.2007   Titel:              Zitieren

Weil SetBkColor nur für den Hintergrund des gezeichneten Textes bestimmt ist.

Statt SetBkColor kannst Du mit FillRect das Rechteck, das Du per GetClientRect erhältst, füllen.
Lexaja
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2005
Beiträge: 154
Beitrag Lexaja Mitglied 12:45:30 11.05.2007   Titel:              Zitieren

Vielen Dank, das probier ich gleich mal aus :)
Uruk-h4j
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2006
Beiträge: 453
Beitrag Uruk-h4j Mitglied 13:57:08 11.05.2007   Titel:              Zitieren

Hier ne nette Seite, die das alles sehr gut rüberbringt

Coding-Help.de

_________________
Try & Error...besser gehts nimma ;)
Lexaja
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2005
Beiträge: 154
Beitrag Lexaja Mitglied 14:17:08 14.05.2007   Titel:              Zitieren

Hallihallo,

also irgendwie klappt es mit dem FillRect auch nicht. Was mache ich denn falsch? Ich gebe euch mal meinen Programmcode!

Code:
void CMeineKlasse::OnDraw(CDC* pDC)
{   
     CBrush* myBrush = new CBrush(RGB(204,228,253));
     CRect clientRect;
     GetClientRect(&clientRect);
     pDC->FillRect(clientRect, myBrush);
}
Code:
void CMeineKlasse::OnDraw(CDC* pDC)
{
CBrush* myBrush = new CBrush(RGB(204,228,253));
CRect clientRect;
GetClientRect(&clientRect);
pDC->FillRect(clientRect, myBrush);
}
Code:
void CMeineKlasse::OnDraw(CDC* pDC)
{   
     CBrush* myBrush = new CBrush(RGB(204,228,253));
     CRect clientRect;
     GetClientRect(&clientRect);
     pDC->FillRect(clientRect, myBrush);
}


Die Klasse CMeineKlasse ist übrigens eine FormView. Vielleicht liegt es daran?


Zuletzt bearbeitet von Lexaja am 14:17:41 14.05.2007, insgesamt 1-mal bearbeitet
Lexaja
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2005
Beiträge: 154
Beitrag Lexaja Mitglied 09:58:12 15.05.2007   Titel:              Zitieren

Für alle, die es interessiert! Mit SetBkColor gehts doch. Siehe unten:

Code:
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
    {
        HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
       
        if(nCtlColor == CTLCOLOR_STATIC)
        {
             pDC->SetBkColor(RGB(204,228,253));
             return farbe;
        }
    }
Code:
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
{
HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));

if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(204,228,253));
return farbe;
}
}
Code:
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
    {
        HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
       
        if(nCtlColor == CTLCOLOR_STATIC)
        {
             pDC->SetBkColor(RGB(204,228,253));
             return farbe;
        }
    }
estartu
Moderator

Benutzerprofil
Anmeldungsdatum: 05.09.2003
Beiträge: 11494
Beitrag estartu Moderator 10:08:17 15.05.2007   Titel:              Zitieren

Lexaja schrieb:
Für alle, die es interessiert! Mit SetBkColor gehts doch. Siehe unten:

Code:
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
    {
        HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
       
        if(nCtlColor == CTLCOLOR_STATIC)
        {
             pDC->SetBkColor(RGB(204,228,253));
             return farbe;
        }
    }
Code:
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
{
HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));

if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(204,228,253));
return farbe;
}
}
Code:
1
2
3
4
5
6
7
8
9
10
if(nCtlColor == CTLCOLOR_STATIC)
    {
        HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
       
        if(nCtlColor == CTLCOLOR_STATIC)
        {
             pDC->SetBkColor(RGB(204,228,253));
             return farbe;
        }
    }
Wo ist der Unterschied zwischen Zeile 1 und 5?

_________________
Das c-plusplus.de-Magazin sucht Mitmacher --- Die Artikel --- meine Homepage
Lexaja
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.08.2005
Beiträge: 154
Beitrag Lexaja Mitglied 13:37:40 15.05.2007   Titel:              Zitieren

Ups, da hab ich wohl zu viel Copy-Paste gedrückt ;-)
Richtige Version:
Code:
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
HBRUSH CMeineKlasse::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
     HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
     if(nCtlColor == CTLCOLOR_STATIC)
     {
          pDC->SetBkColor(RGB(204,228,253));
          return farbe;
     }
}
Code:
1
2
3
4
5
6
7
8
9
HBRUSH CMeineKlasse::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(204,228,253));
return farbe;
}
}
Code:
1
2
3
4
5
6
7
8
9
HBRUSH CMeineKlasse::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
     HBRUSH farbe = CreateSolidBrush(RGB(204,228,253));
     if(nCtlColor == CTLCOLOR_STATIC)
     {
          pDC->SetBkColor(RGB(204,228,253));
          return farbe;
     }
}
C/C++ Forum :: FAQ - MFC ::  CEdit - Hintergrund komplett färben   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.