ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
1713
1713
EMPFEHLEN
-
Ich stehe vor dem Problem, dass ich bei einem MFC-Programm (Entwicklungsumgebung: Visual C++ 6.0) nicht weiß wie ich die Schriftart eines einzelnen Eingabefeldes ändern kann.
Dies wäre jedoch dringend notwendig, denn ich möchte das Eingabefeld zur Anzeige vieler Daten verwenden. Wenn ich nun als Schriftart z.B. "MS Sans Serif" (Standard) verwende, so kann ich die Ausgabe nicht richtig formatieren (darstellen), da sich Probleme mit Leerzeichen usw. ergeben (ein Leerzeichen braucht horizontal weniger Pixel als ein Buchstabe...). Nun möchte ich nur genau dieses eine Textfeld zur Anzeige der Daten mit der Schrifart "Courier" verwenden, da bei dieser Schriftart meines Wissens alle Zeichen die gleiche Größe haben und somit wäre dann das Fenster leichter zu formatieren.
Ich weiß zwar, dass ich durch Rechtsklick auf den Hauptdialog unter "Eigenschaften" die Schriftart des Dialoges ändern kann, jedoch wirken sich diese Änderungen auf das gesamte Projekt aus - und überall die Courier-Schrifart zu verwenden möchte ich auch nicht.
Bitte um Hilfe. Danke im Voraus!
MatthiasGeändert von mstangl (10.11.04 um 16:59 Uhr)
-
Du kannst über SetFont jedem Control einen eigenen Font zuweisen. Einfach deinen Courier irgendwo als CFont erzeugen (evtl. ebenfalls als Member) und dann bei OnCreate bzw. OnInitDialog einmal m_editEingabe.SetFont aufrufen.
-
Sorry, aber ich krieg's mit dieser Erklärung trotzdem nicht hin. Bin nicht sehr erfahren im Programmieren! Und die MSDN hilft mir auch nicht weiter, da in diesem Fall kein Beispiel angegeben ist...
Vielleicht wär eine noch genauere Erklärung möglich?
In meinem Programm befindet sich ein Steuerelement - Eingabefeld (IDC_ANZEIGE), welchem ich eine Membervariable m_strAnzeige zugewiesen habe. Wie kann ich diesen String mit Schriftart Curier anzeigen?
mfg
-
Du musst auch eine CEdit Membervariable anlegen (an IDC_ANZEIGE anhängen), über den Assistenten.
Diese CEdit hat dann eine Memberfunktion SetFont, die ein CFont-Objekt erwartet. Dieses kannst du vor dem Aufruf erstellen. Das CFont-Objekt hat eine Funktion CreateFont mit wahnsinnig vielen Parametern, für die meisten gibt es jedoch Default-Werte (0). Die würde ich unbedingt in der MSDN nachsehen. Als lpszFaceName kannst du einfach "Courier" angeben. Dann sollte Windows das hinkriegen.
-
Hallöchen,
umso mehr ich mit dieser MFC Bibliothek arbeite umso weniger gefällt mir diese...
Das die einem echt das Leben schwer machen.
Erstmal kann man "Static Text" keine Variable Zuweisen, also hab ich "Edit Control" genommen...
Aber wie mein Vorgänger will ich die dem einen Edit Feld ne andere Schriftart, aber vorallem größe Zuweisen...
@endurion
Ich kann zwar die SetFont() Fiunktion aufrufen, aber nur für den gesamten Dialog...
Ich will aber den einzelnen Feldern verschiedene Schriftarten und Größen zuweisen...
Also nicht:
m_FragenDlg.SetFont() <- Nimmt als Parameter nur die CFont Object und nen bool wert (wahrscheinlich obs sofort akt. werden soll.)
Aber ich will sowas:
(category ist hier ein Edit Control Feld....)
m_FragenDlg.category.SetFont()
Geht aber nicht
Es ist zum kotzen die Visual net hilfe ist auch total trotz filter für c++ bekommt man jeden angezeigt nur das was man wil nicht...
Bin für jede Hilfe dankbar
Grüsse
RuFF
-
18.02.05 08:45 #6
Moin
Versuchs mal mit
Code :1
GetDlgItem(IDC_MYDLG)->SetFont(Font);
Gruss FG
-
Man kann acuh unter MFC nem Static eine Variable zuweisen!
Du musst lediglich die ID von IDC_STATIC auf irgendetwas anderes ändern
und schon kannst du sie mit einem CString belegen.
Wenn man das mithilfe vonCode :1
GetDlgItem(IDC_MYDLG)->SetFont(Font);
macht sollte man aufpassen, das man auch die richtige IDC hat da sonst das
Programm abstürtzt könnte (und die höchstwahrscheinlich auch wird).
Daher ist diese code zu empfelen:
Code :1 2
CWnd *pWnd = GetDlgItem(IDC_NAME); if (pWnd) pWnd->SetFont(CFont *pFont, BOOL bRedraw = TRUE);
Das prüft vor dem Zugriff, ob der Zeiger ungleich Null ist.
M.f.G. ErikGeändert von EriFo (18.02.05 um 18:31 Uhr)
Dieses Schreiben wurde maschinell
erstellt und bedarf keiner Unterschrift
-
19.02.05 00:33 #8
Moin
Naja, gut, seh ich auch so. Ich habs halt gerne einfach
Gruss FG
-
Danke für die Antworten werde es gleich mal testen

Grüsse
Ähnliche Themen
-
Logikabfrage eines Eingabefeldes mittels RegExp und replace
Von awnetti im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 02.07.08, 13:56 -
Inhalt eines Eingabefeldes 'pur'?!
Von Veränderung im Forum Flash PlattformAntworten: 3Letzter Beitrag: 04.09.06, 11:54 -
Daten eines Eingabefeldes per Link übertragen
Von Brauni im Forum PHPAntworten: 3Letzter Beitrag: 07.09.05, 11:37 -
Länge eines Eingabefeldes bestimmen, mit Besonderheit
Von visionsign im Forum Flash PlattformAntworten: 4Letzter Beitrag: 13.04.05, 13:16 -
XSL Schriftart ändern?
Von Bane im Forum XML TechnologienAntworten: 0Letzter Beitrag: 30.11.04, 09:55





Zitieren
Login






