Wie: logische Schriftarten benutzen



  • LOGFONT logfont    //Global, also mit standartvorgaben besetzt
    case WM_PAINT:
    		hwnd=hWnd;
    		hdc = BeginPaint(hWnd, &ps);
    HFONT hifont;
    		logfont.lfItalic=TRUE;
    		hifont=CreateFontIndirect(&logfont);
    		SelectObject(hdc,&hifont);
    		TextOut(hdc,5,5,_T("kurs"),4);
    		DeleteObject(SelectObject(hdc,GetStockObject(SYSTEM_FONT)));
    		EndPaint(hWnd, &ps);
    		break;
    

    Leider erscheint der Text trotzdem nicht kursiv! Wieso?



  • Was gibt denn CreateFontIndirect zurück? Ist der Wert ungleich NULL?



  • Wie würdest du es denn machen? (Ich habe keine Erfahrung auf dem Gebiet)



  • Um mein Problem noch mal deutlich zu machen: Ich möchte die Attriebute fett, kursiv, unterstrichen, durchgestrichen und Größe ändern! Aber nicht indem ich einen Schriftsatz auswähle, sondern indem ich nach einer geeigneten Schrift suchen lasse!
    /edit:Ich weiß net was jetzt anders ist, aber nu gehts.



  • Achja @flenders: Eigentlich sollte es ein handle zu einer logischen Schrift geben! Aber ich habe es dann so gemacht: (nicht besonders schön)
    [cpp]LOGFONT logfont

    SelectObject(hdc,CreateFontIndirect(&logfont));
    //...
    DeleteObject(SelectObject(hdc,GetStockObject(SYSTEM_FONT)));



  • Dein Problem ist afaik bei SelectObject(hdc,&hifont); der Adress-Operator - also einfach das & weglassen 🙂


Anmelden zum Antworten