Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Text Farben von mfc Steuerelementen ändern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
09.10.2002, 02:18 Uhr
~Andy
Gast


Moin!!!

Habe vor die Text Farben von Button`s und Static`s zu ändern!
Aber such mir hir nen wolf nach der richtigen Funktion!
Kann mir jemand nen Tip geben?

Danke!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2002, 21:32 Uhr
void*
Generic Pointer
(Operator)


Hallo!

Du musst in OnCtlColor()
SetTextColor() benutzen.

Das funktioniert für alls Controls ausser Buttons.

Da geht das irgendwie so:
1. Die Button-Eigenschaft owner-draw muss gesetzt sein
2. OnDrawItem kann dann der Button gezeichnet werden
mit DrawText usw.

Gruß
void*
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.10.2002, 05:49 Uhr
~MysticEmpires
Gast


Hilft dir evl nicht richtig is aber kann dir evl helfen.


C++:

SetDialogBkColor(RGB(0, 0, 0), RGB(255, 255, 255));

// Die erste 3 Zahle sin für den Hintergrund die 2 3 sind für die schrift


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.10.2002, 05:55 Uhr
~MysticEmpires
Gast


Vergessen muss unter InitInstance() aufgerufen werden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.10.2002, 17:11 Uhr
~Andy
Gast


Hy!

Ich Danke euch erst mal!

Aber ich hofte das ich Gleichzeitig einen Button rot und einen zweiten Blau machen kann so alla

SetTextColor(IDC_BUTTON_1 , RGB(0, 0, 0));
SetTextColor(IDC_BUTTON_2 , RGB(255, 255, 255));

oder so.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.10.2002, 17:18 Uhr
~Andy
Gast


Und/Oder das Gleiche auch für Static.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.10.2002, 21:28 Uhr
void*
Generic Pointer
(Operator)


Hallo!

in OnDrawItem kannst Du über nIDCtl bestimmen welche Control gemalt werden soll.

In OnCtlColor geht dasselbe über pWnd->GetDlgCtrlID().

Das sieht dann ungefähr so aus:

C++:
HBRUSH CDialogVcppDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  if (pWnd->GetDlgCtrlID()==IDC_STATIC1)
  {    
    pDC->SetTextColor(text);
    pDC->SetBkColor(bg);
    return((HBRUSH)bgBrush.GetSafeHandle());
  }      
  return hbr;
}




Gruß
void*
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.10.2002, 16:18 Uhr
~Andy
Gast


Bor dat Funzt!!!

Bin wieder einmal glücklich Dank Void!

Habe aber

return((HBRUSH)bgBrush.GetSafeHandle());

wieso an der stelle ein return
z.B.
if (pWnd->GetDlgCtrlID()==IDC_STATIC1)
{
pDC->SetTextColor(text);
pDC->SetBkColor(bg);
}
if (pWnd->GetDlgCtrlID()==IDC_STATIC2)
{
pDC->SetTextColor(text);
pDC->SetBkColor(bg);
}

und was soll ((HBRUSH)bgBrush.GetSafeHandle())

Naja ich werd erst mal noch was Coden vieleicht kommt mir dann die erleuchtung!

Ich Danke Euch beiden!

Mfg

Andy
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.10.2002, 16:56 Uhr
void*
Generic Pointer
(Operator)


MSDN:

Zitat:

OnCtlColor must return a handle to the brush that is to be used for painting the control background.



Aus der *.h-Datei:

C++:
private:
  COLORREF text;
  COLORREF bg;
  CBrush bgBrush;



Und daher um von der CBrush ein Handle zu bekommen GetSafeHandle().

Gruß
void*
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.10.2002, 18:11 Uhr
~Andy
Gast


Hy void!

Ich verstehe es nicht!
Am Ende der Funktion steht doch


C++:
return hbr;


wieso soll ich denn den nicht nehmen?

Habe zwar noch


C++:
if (pWnd->GetDlgCtrlID()==IDC_STATIC1)
{    
    pDC->SetTextColor(text);
    pDC->SetBkColor(bg);
    hbr = bgBrush;
}
return hbr;


im Netz gefunden
Funtz aber auch nicht.

bis dann mal

Andy
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: