DrawText formatieren



  • wenn es euch interessiert.
    ich hab die farbe mit settextcolor(...) gemacht.
    der spaß mit setfontindirect geht jetzt.
    danke.



  • der compiler schimpft zwar net aber es passiert auch nix, bis auf das der text rot is. was stimmt noch nicht? ich finbd den fehler net

    switch (iMsg)

    {
    PAINTSTRUCT ps;
    HDC hdc;
    RECT rcClient;

    LOGFONT mylogfont;
    HFONT myfont;
    mylogfont.lfHeight = 1;
    lstrcpy(mylogfont.lfFaceName, _T("Arial"));
    myfont = CreateFontIndirect(&mylogfont);

    case WM_PAINT:
    hdc = BeginPaint(hwnd,&ps);
    GetClientRect(hwnd,&rcClient);

    SetTextColor(hdc,200);
    SelectObject(hdc,myfont);

    DrawText(hdc,L"Hallo",5,&rcClient,DT_CENTER);
    EndPaint(hwnd,&ps);
    break;



  • 1. Die LOGFONT-Struktur hat noch ein paar mehr Parameter (dazu hat ja WebFritzi die Funktion geschrieben, die das Besetzen erleichtert)
    2. Solltest du Das mit dem belegen der Struktur und CreateFontIndirect in WM_CREATE erledigen
    3. Solltest du beim Aufruf von SelectObject in WM_PAINT den Rückgabe-Wert speichern und am Ende (vor EndPaint) diesen wieder zurückselektieren (mit SelectObject)
    4. So solltest du auch mit SetTextColor verfahren (Rückgabewert speichern und diesen nachher wieder einsetzen)
    5. In WM_DESTROY dann DeleteObject für myfont aufrufen

    Ich hoffe mal, dass ich nichts vergessen habe 😉



  • mylogfont.lfHeight = 1;

    Das iss'n bisschen sehr dünn 😃



  • SetTextColor(hdc,200);

    Auch nicht gerade das Gelbe vom Ei! 😃



  • ist mir schon klar das ich den font wieder freigeben muß.
    das der logfont ein paar parameter mehr hat ist mir auch klar,
    allerdings sind die (laut der lib) net notwendig.
    mir ist nur unklar warum mein text net formatiert wird.
    um mal dumm zu fragen funzt die formatierung unter 9x-WinAPI?
    wenn ja dann is das wieder son schönes ce-problem.



  • Was meinst du mit Formatierung?



  • ich bekomme gleich nen schreikrampf.
    was will ich denn die ganze zeit lang machen?
    was macht man den wenn man nen text formatiert?
    man verändert sein aussehen.
    (das was mit meinem quelltext anscheinent net geht und das was ich wissen will wie es geht)



  • Jetzt reichts mir aber, du Idiot!!! Ich hab hier bereits die Lösung zu deinem Problem gepostet. Wenn du schon zu dämlich bist, CreateFontIndirect() anzuwenden, dann benutze meine Funktion oder lass es einfach.

    BTW: Das, was du vorhast, ist keine Textformatierung!!!



  • ...und CODE TAGS verwenden, um seinen Müll lesbarer zu gestalten, kann er auch nicht....


Anmelden zum Antworten