Textfont und Styles ?!



  • Hallo Leute!
    Ich möchte in meinen Win-API Programm gerne die Schriftart, -größe und -farbe ändern, doch ich weiss mal wieder nicht wie... Evtl. auch die Farbe und Dicke von den Linien ( Lineto() in WM-PAINT ), wenn möglich.

    Google habe ich auch schon "durchforstet" und die MSDN abgeklappert, doch irgendwie hat mir das nicht all zu viel geholfen ... Naja, hab mal nach WM_SETFONT geschaut, in der Msdn steht aber nicht viel drin, außer dass man es in ner sendmessage() - Funktion anwenden kann?!

    Könntet ihr mir bitte ein kleines Beispiel posten, da lerne ich nämlich am draus - learn by doing ^^ !

    Hoff mir kann jemand helfen ! Schonmal ThX!

    n()()bi



  • Schade ... Keiner kann/will mir helfen 😞

    Für andere n00bs, die dieses Prob. auch haben:
    Habe ne Lösung schonmal für die Text-Farbe:

    WM_PAINT:
      {
    //Hintergrundfarbe des Textes (Standart Weiss):
        SetBkMode(hDC, TRANSPARENT);
    
    //Textfarbe setzen RGB(Rotanteil, Gelbanteil, Blauanteil): 
        SetTextColor(hDC,RGB(255,0,0));
    
    //Hier dann Text ausgeben
       return 0;
    

    Schade, ich habe eig. von diesem Forum mehr erwartet! Bei dem normalen C++ Forum wird einen fast 100-%-tig geholfen ... und dass ziemlich schnell !

    Naja, evtl. kann mir jemand noch bei der Font-Family und Größe helfen, da hat die MSDN wieder mal zu viele Funktionen, wovon ich die Parameter nicht checke ...

    In der MSDN fehlen - meiner Meinung nach die Bsp. und die die vorhanden sind, sind meist zu umfangreich ! Naja ... Hoffe dass mir jemand bei den kleinen Prob helfen kann!

    MFG: n()()bi



  • Textfonts macht man so:
    Als erstes erstellt man ein Handle für ein Font:
    [/cpp]HFONT name_des_handles

    Dann erstellt man einen Font mit CreateFont:
    [cpp]name_des_handles = CreateFont(
    10,//Höhe
    0, //Breite
    0, //Winkel in 1/10 Grad
    0, //Orientierung in 1/10 Grad
    450, //Gewicht: 0-900 oder Konstanten: FW_BOLD, FW_NORMAL, FW_MEDIUM
    0, //Kursiv (0,1)
    0, //Unterstrichen (0,1)
    0, //Durchgestrichen (0,1)
    0, //Character Set
    0,0,0 //Präzision
    0, //Familie
    "Arial" //Fontname
    );
    

    Dann wählt man den Font an:

    SelectObject(hDc, name_des_handles);
    

    Ab hier ist der Font aktiv.
    Man sollte allerdings den Speicher wieder freigeben, wenn der Font nicht mehr gebraucht wird:

    DeleteObject(name_des_handles);
    

    Um die Pinselfarbe und die Stifteigenschaften zu ändern, macht man es ähnlich, nur halt mit HBRUSH und HPEN, und den Funktionen CreatePen() und CreateSolidBrush() (Am besten in der WinAPI Referenz nachlesen)



  • Dankeschön! Du hast mir sehr geholfen !!!!
    Die Funktion habe ich in der MSDN auch gefunden und auch eingebunden, doch ich wusste nicht, dass man sie aufrufen muss 😕

    Eine kleine Frage hätt ich noch ... Wie kann ich meine Linien, die ich mittels "Lineto()" erstellt habe farbig gestalten ?

    Mit CreateBrush gehts glaub ich ned ?!

    THX 2 U ! MFG

    n()()bi



  • Du musst einen farbigen Pen ( CreatePen() ) in das DC selektieren kein Brush 😉



  • Dankeschön, funktioniert alles perfekt!


Anmelden zum Antworten