Textausgabe mit unterschiedlicher Größe/Länge !
-
Hallo,
ich gebe einen Text auf ein Static-Control aus mit einer bestimmten Größe, Farbe etc.... das funzt auch !
Allerdings bei unterschiedlicher Textlänge gibt es ein Problem:
Ist der neue Text kürzer als der alte sind im Static immer noch Reste des alten Textes zu sehen.Ich glaube man muß den DC vor dem neu Zeichnen löschen oder refreshen....
Aber wie ?
Hat jemand eine Idee ?
levin
void DMasch1::TextAusgabe(int id, LONG zeichenhoehe, CString member_wert, int x_start, int y_start) { CWnd *border = (CWnd *)GetDlgItem(id); CClientDC dc2(border); static LOGFONT lfont; static int isfirst; //Struktur Logfont anlegen if(isfirst == 0 || lfont.lfHeight != zeichenhoehe) { memset(&lfont,0,sizeof(LOGFONT));// Speicher mit "0"belegen lfont.lfHeight = zeichenhoehe; // Höhe eines Zeichens lfont.lfWeight = FW_NORMAL; // Durchschnittliche Breite lfont.lfCharSet = ANSI_CHARSET; // Zeichensatz lfont.lfOutPrecision = OUT_DEFAULT_PRECIS; lfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; lfont.lfQuality = DEFAULT_QUALITY; lfont.lfPitchAndFamily = FF_DONTCARE; strcpy(lfont.lfFaceName, "Arial"); m_font.CreateFontIndirect(&lfont); isfirst = 1;// font nur einmal anlegen } //Hintergrundfarbe einstellen dc2.SetBkColor(RGB(212,208,200,)); // text auf den Bildschirm zaubern dc2.SelectObject(m_font); dc2.TextOut(x_start,y_start,member_wert); return; }
-
void DMasch1::TextAusgabe(int id, LONG zeichenhoehe, CString member_wert, int x_start, int y_start) { CWnd *border = (CWnd *)GetDlgItem(id); CClientDC dc2(border); static LOGFONT lfont; static int isfirst; // NEU : einmal das control neu zeichnen border->RedrawWindow(); //Struktur Logfont anlegen if(isfirst == 0 || lfont.lfHeight != zeichenhoehe) { memset(&lfont,0,sizeof(LOGFONT));// Speicher mit "0"belegen lfont.lfHeight = zeichenhoehe; // Höhe eines Zeichens lfont.lfWeight = FW_NORMAL; // Durchschnittliche Breite lfont.lfCharSet = ANSI_CHARSET; // Zeichensatz lfont.lfOutPrecision = OUT_DEFAULT_PRECIS; lfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; lfont.lfQuality = DEFAULT_QUALITY; lfont.lfPitchAndFamily = FF_DONTCARE; strcpy(lfont.lfFaceName, "Arial"); m_font.CreateFontIndirect(&lfont); isfirst = 1;// font nur einmal anlegen } //Hintergrundfarbe einstellen dc2.SetBkColor(RGB(212,208,200,)); // text auf den Bildschirm zaubern dc2.SelectObject(m_font); dc2.TextOut(x_start,y_start,member_wert); return; }