Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Layout statischer Labels ä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 <
000
25.10.2005, 11:06 Uhr
deflow



hi @ all,

folgendes problem:
ich habe ein label bei dem ich die hintergrundfarbe bzw. schriftart ändern möchte, bekomme es aber absolut nicht gebacken... ich find auch keine gescheite lösung im inet, zumindest keine die mich zum erfolg gebracht hat.

wär echt super wenn mir jemand weiterhelfen könnte.

thx

deflow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.10.2005, 15:42 Uhr
mmc20
puss in boots


hi,
ich geh jetzt mal davon aus das du ein normales CStatic meinst.
da musst du dir selbst was basteln, soll heissen: klasse von CStatic ableiten und ihre OnPaint deinen (design)wünschen anpassen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.10.2005, 16:10 Uhr
deflow



hi,
ja ich benutze CStatic...
das mit der abgeleiteten klasse von CStatic hab ich mir auch schon angeschaut... bekomm es aber nicht hin. könntest du das etwas genauer erlären bzw was ich beachten muss.

bisher habich mal versucht eine neue klasse, die von CStatic abgeleitet ist, meinem projekt hinzuzufügen. anschließend wollte ich die CltColor methode überschreiben.
klappt aber nicht, weil mir irgendwelche attribute fehlen...

thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.10.2005, 18:03 Uhr
mmc20
puss in boots


beachten.. naja, dagibts nicht viel zu sagen...
- klasse erstellen
- von CStatic ableiten
- die OnPaint überschreiben
hier mal ein kleines beispiel:

C++:
//////////////////////////////////////////////////////////
// die .h
//
class XStatic : public CStatic
{
// Konstruktion
public:
    XStatic();
    virtual ~XStatic();
    CString GetWindowText();
    void SetWindowText(CString sText);

    // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
    //{{AFX_VIRTUAL(XStatic)
    protected:
    //}}AFX_VIRTUAL

protected:
    //{{AFX_MSG(XStatic)
    afx_msg void OnPaint();
    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()
private:
    BOOL bFirstPaint;
    CString m_text;
};

//////////////////////////////////////////////////////////
// die .cpp
//
XStatic::XStatic()
{
    m_text = "";
    bFirstPaint = FALSE;
}

XStatic::~XStatic()
{
}

BEGIN_MESSAGE_MAP(XStatic, CStatic)
    //{{AFX_MSG_MAP(XStatic)
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

void XStatic::OnPaint()
{
    bFirstPaint = TRUE;
    CPaintDC dc(this);
    CRect rect;
    GetWindowRect( &rect );
    ScreenToClient( &rect );

    dc.SetBkColor( RGB( 255, 255, 255 ) );
    dc.Rectangle( &rect );

    CFont font;
    font.CreatePointFont( 8, "MS Sans Serif" );
    CFont *oldFont = dc.SelectObject( &font );

    rect.DeflateRect( 3, 3 );
    dc.DrawText( m_text, -1, &rect, DT_LEFT|DT_WORDBREAK );    dc.SelectObject( oldFont );
}

void XStatic::SetWindowText(CString sText)
{
    m_text = sText;
    if ( bFirstPaint )
        Invalidate(FALSE);
}

CString XStatic::GetWindowText()
{
    return m_text;
}


- dem entsprechendem static-feld dann eine member verpassen (type control)
- fertig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.10.2005, 08:03 Uhr
deflow



! vielen dank!
endlich hab ichs...

thx

deflow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.10.2005, 11:10 Uhr
deflow



was mir noch einfällt, kannst du mir vll noch schnell sagen wie ich ein rechteck ohne rahmen zeichnen kann?

greetz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.10.2005, 15:00 Uhr
mmc20
puss in boots


sicher, aber die MSDN kann das auch...

MSDN:

CDC::FillSolidRect
void FillSolidRect( LPCRECT lpRect, COLORREF clr );

void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
Parameters

lpRect

Specifies the bounding rectangle (in logical units). You can pass either a pointer to a RECT data structure or a CRect object for this parameter.

clr   Specifies the color to to be used to fill the rectangle.

x

Specifies the logical x-coordinate of the upper-left corner of the rectangle.

y

Specifies the logical y-coordinate of the upper-left corner of the destination rectangle.

cx

Specifies the width of the rectangle.

cy

Specifies the height of the rectangle.

Remarks

Call this member function to fill the given rectangle with the specified solid color.

FillSolidRect is very similar to CDC::FillRect; however, FillSolidRect uses only solid colors (indicated by the COLORREF parameter), while FillRect takes a brush and therefore can be used to fill a rectangle with a solid color, a dithered color, hatched brushes, or a pattern. FillSolidRect usually is faster than FillRect.

Note   When you call FillSolidRect, the background color, which was previously set using SetBkColor, is set to the color indicated by clr.

CDC Overview |  Class Members |  Hierarchy Chart

See Also   RECT, CRect, CDC::FillRect

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.11.2005, 07:59 Uhr
deflow



danke danke

habs auch gefunden.

thx deflow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: