DEBUG Assertion Failed
-
kaum probiert man mal was aus...
BOOL test::OnInitDialog() { CDialog::OnInitDialog(); CWnd* wnd=GetDlgItem(IDC_STATIC); LOGFONT lf; wnd->GetFont()->GetLogFont(&lf); lf.lfWeight=FW_BOLD; lf.lfHeight=20; lf.lfUnderline=true; static CFont myFont; myFont.CreateFontIndirect(&lf); wnd->SetFont(&myFont); return true; }
Wenn ich den Dialog das erstemal aufrufe klappt ja alles, aber wenn ich nun auf den Dialog ein zweites Mal zurückgreife, kommt diese schöne Fehlermeldung.
Ich öffne den Dialog mit Do.Modal. Vergesse ich hier irgendwas wichtiges,Antwort ist ja, aber was
-
muss ich die Schriftveränderung irgendwo anders vornehmen? wird die OnInit vielleicht beim Dialog"ZURÜCK"Sprung gar nicht mehr geladen???
mit zurücksprung meine ich:
Dialog1 über OK-Button zu Dialog2 ->funktioniert
Dialog2 über Zurück-Button zu Dialog1 -> kommt die Fehlermeldung
-
static ist nicht so gut. Du rufst dann für dasselbe CFont-Objekt zweimal CreateFontIndirect, was AFAIK nicht vorgesehen ist. Mach myfont doch zu einem Member von test.
-
und als was soll ich diesen deklarieren?
als CString geht ja nicht bei CFont...
-
also beim debuggen erscheint die Fehlermeldung beim Sprung von
myFont.CreateFontIndirect(&lf);
zu
wnd->SetFont(&myFont);
...
kann es sein, daß man wnd->SetFont nur einmal benutzen kann?
Und wie kann ich es denn dann anzeigen lassen?
-
Entschuldigung, vielleicht doch noch nicht ganz ausgeschlafen...
Werde mich später eingenhändig erschiessen, natürlich geht es nicht mit static,mit dem member funktioniert es,man sollte ihn vorher aber deklarieren
.
thx