tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
1713
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mstangl mstangl ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    18
    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!
    Matthias
    Geändert von mstangl (10.11.04 um 16:59 Uhr)
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    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.
     

  3. #3
    mstangl mstangl ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    18
    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
     

  4. #4
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    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.
     

  5. #5
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    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
     

  6. #6
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Moin

    Versuchs mal mit

    Code :
    1
    
     GetDlgItem(IDC_MYDLG)->SetFont(Font);

    Gruss FG
     

  7. #7
    Registriert seit
    Apr 2004
    Ort
    Ettersburg (Thüringen)
    Beiträge
    176
    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 von
    Code :
    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. Erik
    Geändert von EriFo (18.02.05 um 18:31 Uhr)
     
    Dieses Schreiben wurde maschinell
    erstellt und bedarf keiner Unterschrift

  8. #8
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Moin

    Naja, gut, seh ich auch so. Ich habs halt gerne einfach

    Gruss FG
     

  9. #9
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    Danke für die Antworten werde es gleich mal testen

    Grüsse
     

Ähnliche Themen

  1. Logikabfrage eines Eingabefeldes mittels RegExp und replace
    Von awnetti im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 02.07.08, 13:56
  2. Inhalt eines Eingabefeldes 'pur'?!
    Von Veränderung im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 04.09.06, 11:54
  3. Antworten: 3
    Letzter Beitrag: 07.09.05, 11:37
  4. Länge eines Eingabefeldes bestimmen, mit Besonderheit
    Von visionsign im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 13.04.05, 13:16
  5. XSL Schriftart ändern?
    Von Bane im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 30.11.04, 09:55