CFont bei Static-Steuerelement



  • Hallo,

    ich habe ein Programm geschrieben, mit dem ich über "Maus-Ziehen" die Große eines Static-Steuerlements verändern kann. Da ich den Text des Steuerelemts im gleichen Verhältnis zu seiner Gesamtgröße ebenfals verändern möchte, habe ich OnPaint() mit folgendem Code überschrieben:

    GetDlgItem(ID_MYSTATIC)->GetClientRect(&rect);
    int h = rect.Height();
    int w = rect.Width();
    
    font.CreateFont(h,
    		w,
    		0,
    		0,
    		FW_NORMAL,
    		0, 
    		TRUE, 
    		0, 
    		DEFAULT_CHARSET, 
    		OUT_CHARACTER_PRECIS, 
    		CLIP_CHARACTER_PRECIS, 
    		DEFAULT_QUALITY, 
    		DEFAULT_PITCH | FF_DONTCARE, 
    		"Arial"); 
    
    GetDlgItem(ID_MYSTATIC)->SetFont(&font);
    

    Das Problem ist nun, dass wenn ich die Größe des Static-Steuerelements verändere, der urprüngliche Text in ihm verschwindet.

    Jemand eine Idee?



  • Vielleicht fehlt nur ein GetDlgItem(ID_MYSTATIC)->RedrawWindow(); ?



  • Hab's gerade mit RedrawWindow(), UpdateWindow() und font.DeleteObject() versucht - ergebnislos! 😞



  • Mmhhh, Schade.
    Dein Static-Text fängt aber nicht zufälligerweise mit einem Leerzeichen an, oder ?



  • ...Asche auf mein Haupt 😕

    ich hatte an anderer Stelle das Static-Steuerelement zuvor modifiziert mit

    GetDlgItem(ID_MYSTATIC)->ModifyStyle(SS_BITMAP, SS_BLACKFRAME);
    

    Kein Wunder, dass das nicht ging. Jetzt ist alles paletti!


Anmelden zum Antworten