MDI-Texteditor Schrift Courier
-
Hallo wiedermal,
In meinem Editor mit Doc/View-Modell kann ich über einen Button eine Funktion (siehe unten) aufrufen die in C..View steht und die Standardschrift in Curier ändert.
Dies soll aber beim öffnen beliebiger Dateien automatisch geschehen.Dazu habe ich die FAQ gelesen und das Kapitel 13 von Dr. Erhard Henkes aber das mich nicht wirklich weitergebracht.
In welche Methode muß ich den Code für eine neue Schrift schreiben?
(OnDraw???)
Wie muß der aussehen??
(So wie der den ich hier unten stehn hab?)Hier das was ich bisher hab:
void C???View::OnSchriftcourier()
{
m_pFont = new CFont();
m_pFont->DeleteObject();
m_pFont->CreateFont(16,0,0,0,400,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"Courier New");
SetFont(m_pFont);}
-
!!! CODE-Tags verwenden !!!
C???View::C???View() // Konstruktor { m_pFont = NULL; // !!! } void C???View::OnSchriftcourier() { if( m_pFont == NULL) m_pFont = new CFont(); else m_pFont->DeleteObject(); m_pFont->CreateFont( 16, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Courier New"); SetFont( m_pFont); Invalidate(); }
[ Dieser Beitrag wurde am 23.10.2002 um 08:45 Uhr von RenéG editiert. ]
-
Hi,
hab ich probiert. Doch dadurch wird die Funktion (OnSchriftCourier) ja trozdem nicht automatisch aufgerufen. D.h. mein Fenster hat beim Start immernoch die Standardschrift.
Ist es besser ich ruf OnSchriftCourier aus dem Konstruktor oder OnDraw oder wo auch immer auf(müßtest du mir sagen wo), oder besser den Code gleich in eine der Methoden rein und dann OnSchriftCourier löschen??Danke
-
void C???View::OnInitialUpdate() { OnSchriftcourier(); CView::OnInitialUpdate(); }
Logischer Gedankengang:
1. In Konstruktor geht net, weil SetFont Handle auf Window verlangt, was da noch nich gibt
2. In OnDraw würde ständig SetFont aufgerufen werden, obwohl sich da nix ändert
3. Günstig wäre in OnCreate, aber da müsste man erst WM_CREATE überschreiben, aber da OnInitialUpdate schon vom Klassenassistenten erzeugt wurde, schreib ichs einfach da rein![ Dieser Beitrag wurde am 23.10.2002 um 14:04 Uhr von RenéG editiert. ]