Zeichenbreite einer Schriftart in ListBox ändern?



  • Hallo zusammen

    Für einen Dialog benutze ich die Schriftart Tahoma, 8. Das Problem besteht nun darin, dass ich in einer ListBox eine Schriftart möchte, bei der alle Zeichen die selbe Breite haben und nicht, dass z.B. das 'i' weniger breit ist als das 'w'. Eine solche Schriftart wäre z.B. Courier.

    Nun zwei Fragen:

    1. Wie kann ich z.B. einer ListBox (und nur dieser!) in dem Dialog eine andere Schriftart (eben z.B. Courier) zuweisen?

    2. Wäre es auch möglich, dass ich bei meiner Schrift Tahoma bleibe und dieser nur in der ListBox eine konstante Breite für alle Zeichen zuweise? Wenn möglich, würde ich diese Lösung vorziehen.

    Wäre dankbar für Eure Hilfe und auch sehr froh über Beispielcode zu meinen Fragen.



  • CFont Font;
    //...
    Font.CreateFont(15,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
    		CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"Tahoma");
    ((CListBox*)GetDlgItem(IDC_LIST1))->SetFont(&Font);
    

    CFont Objekt muss Member deiner CDialog bzw. CFrameWnd abgeleiteten Klasse sein.



  • Danke Shlo. Ich habe dies ausprobiert, aber es funkioniert nicht so, wie in meiner Frage gestellt.

    Erstens sieht die Schrift völlig anders aus als meine Dialog-Shriftart (Tahoma) und zweitens sind die Zeichen immer noch nicht gleich breit. Ich habe es auch mit verändern der Parameter von CreateFont nicht hingekriegt.

    Hat jemand eine andere Idee oder Lösung, damit ich mein Ziel erreiche?

    Vielen Dank!


Anmelden zum Antworten