SetFont für Tree-Nodes mit MFC

Hallo,

ich habe einen Tree in dem der Text jeder node proportional sein muss, da sonst die Formatierung nicht hinhaut. Unter Win32SDK kein Problem, aber mit MFC ?

//Font initialisieren
CFont font;
font.CreateFont(0,0,GM_COMPATIBLE,0,FW_NORMAL,
FALSE,FALSE,FALSE,ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
FF_MODERN,
„COURIER“);
m_Tree2.SetFont(&font,TRUE);

Was stimmt denn hieran nicht, wieso habe ich nach dieser Initialisierung immer noch eine sanserife, nicht-proportionale Schrift ? Ach so, diese Initialisierung erfolt in der OnInitDialog Methode.

danke im vorraus

Hallo!

Falls du diesen Source in der OnInitDialog stehen hast, dann hast du eine ganz blöden Fehler gemacht, wegen dem ich mich auch schon ergern musste! Du erstellst eine CFont Variable namens font. Du weist dieser Werte zu… usw. Aber!!!, du übergibst eine Pointer auf diese Variable der SetFont-Methode! Warum? Weil diese Funktion nur den Pointer auf dieses Objekt übernimmt und nicht das Objekt selber. Wenn nun die OnInitDialog beendet wird, wird auch das font-Objekt zerstört - das CTreeCtrl-Objekt jedoch hat noch einen Pointer darauf!

Lösung:
Gib das CFont-Objekt in die Klassendefinition als Member!

Bin froh, dass ich (hoffentlich) helfen konnte!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]