Ich möchte in einer MFC Anwendung sehr große Zahlen darstellen (Schriftgröße 50-100), damit diese auch aus einer gewissen Entfernung lesbar sind. Daher habe ich versucht mit CreateFont den Anzeigefeldern eine große Schriftart zuzuweisen, aber irgendwie ändern die angegebene Breite und Höhe nur die Größe der Darstellungsfläche (d.h. mache ich die Werte zu klein, wird der Text unten abgeschnitten). Kann man irgendwie direkt die Schriftgröße einstellen, oder geht das nur über den Umweg mit einer Grafik (z.B. über CClientDC::TextOut) ?
a) was sind in Deinem spezifischen Fall "Anzeigefelder"? b) sollten das Controls sein, sendest Du denen auch 'ne WM_SETFONT-Nachricht? c) Ownerdraw-Controls sollten eigentlich nicht nötig sein. d) Mit welcher Schriftart versuchst Du das? Nicht jede in Windowsprogrammen verwendete ist überhaupt skalierbar, es gibt immer noch ein paar Pixelfonts.
Ich versuche den Text in einer EditBox groß zu machen. Hier mein bisheriger Code: CFont l_font; l_font.CreateFont(50, // Height 0, // Width 0, // Escapement 0, // Orientation FW_BOLD, // Weight FALSE, // Italic TRUE, // Underline 0, // StrikeOut ANSI_CHARSET, // CharSet OUT_DEFAULT_PRECIS, // OutPrecision CLIP_DEFAULT_PRECIS, // ClipPrecision DEFAULT_QUALITY, // Quality DEFAULT_PITCH | FF_SWISS, // PitchAndFamily "Arial"); // Facename m_freqc.SetFont(&l_font); SendMessage(WM_SETFONT, (WPARAM)HFONT(l_font), true);
Programmieren hier alle nur in VB oder ist sowas in MFC echt so schwer, dass sich hier niemand auskennt ?
So, habe mir das mal eben angesehen. Das Problem liegt in der Variablen l_font, die muss für die ganze Laufzeit des Dialoges existieren, also nicht nur für den Aufruf von SetFont. Mach daraus eine Membervariable Deiner Dialogklasse, und schon sollte es funktionieren. Was nicht geschieht, ist eine automatische Größenanpassung von Editcontrols, die musst Du im Resourceneditor von Hand ausreichend groß machen. Anbei ein Müsterchen, erstellt mit VC6. Viel Erfolg
Danke ! Jetzt funktioniert es wunderbar. Es sind immer nur kleine Details die aber nirgends beschrieben sind.
Nein, es programmieren nicht alle in VB, aber MFC iss doch sowas von out ;-)
Gibt es einfache Alternativen, die ohne Zusatzsoftware (z.B. .NET Framework usw.) auf Win9x und aufwärts laufen ?
Es gibt in der Tat Alternativen, die mit statisch linkbaren Libraries auch aus VC6 heraus verwendet werden können. Das .Net-Geblubber fällt nicht darunter. Beispiele: wxWidgets fltk Qt Zu wxWidgets ist der GUI-Builder DialogBlocks sehr zu empfehlen, der aber kostet (etwas) Geld (www.anthemion.co.uk). Der Vorzug all dieser GUI-Toolkits ist deren Plattformunabhängigkeit - damit geschriebene Programme sind prinzipiell auch auf andere Betriebssysteme wie Linux oder MacOS portierbar, was bei der MFC nicht möglich ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.