Font aus Resource laden...?
-
Hallo,
Ich hab eine Font Datei .ttf in einer Resource und möchte diese gerne Laden.
Das ganze mach ich so:DWORD Count;
HRSRC Resource = FindResource(GetModuleHandle(0),MAKEINTRESOURCE(IDB_FONTAWESOME),RT_FONT);
DWORD Length = SizeofResource(GetModuleHandle(0),Resource);
HGLOBAL Address = LoadResource(GetModuleHandle(0),Resource);
Handle = AddFontMemResourceEx(Address,Length,0,&Count);Wie kann ich die Handle ist als Font Datei laden und z.B. einem Button zuordnen? Danke!!!
-
Einfach WM_SETFONT an den Button schicken:
SendMessage(hButton, WM_SETFONT, hFont, TRUE);
-
ja, aber ich hab ja keine HFONT sondern nur einen HANDLE ???
-
Den konkreten Font mußt du dann noch entsprechend per CreateFont (oder einer der anderen
CreateFont...
-Funktionen) anhand des Font-Namens erzeugen (und damit erhältst du dann dasHFONT
-Handle).
-
Das klappt alles nicht? Die Font Datei wird einfach nicht geladen?
Wenn ich die Datei mit AddFontResource lade, bekomm ich einen Index.
Wie kann ich die Datei dann Laden???????
Danke!
-
Dieser Beitrag wurde gelöscht!
-
@pindumb ich hab es mit create font probiert, aber es geht einfach nicht?
-
Dieser Beitrag wurde gelöscht!
-
@Mike85Dev: Welcher Aufruf schlägt denn fehl (gibt
NULL
zurück)? SchonAddFontMemResourceEx
?
Evtl. fehlt noch einLockResource
, s.a. die Antworten in Win32 Use a resource font inside the application.
-
Danke, hat sich erledigt
-
Was war es denn? Es wäre schön, wenn du auch für andere deinen funktionierenden Code dann hier posten würdest.
-
Dieser Beitrag wurde gelöscht!
-
AddFontResource(L"TOMMY.ttf");
LOGFONT logFont = {0};
logFont.lfHeight = 14;
logFont.lfWeight = FW_SEMIBOLD;
_tcscpy_s(logFont.lfFaceName, L"TOMMY");
HFONT font = CreateFontIndirect(&logFont);
SendMessage(hPlay, WM_SETFONT, (WPARAM)font, (LPARAM)MAKELONG(TRUE, 0));
-
Was soll uns das jetzt sagen?
Fast alle WinAPI Funktionen haben einen Rückgabewert, den man auf Erfolg/Fehlschlag testen kann. Bei Fehlschlag wird dann meistens ein globaler Fehlercode gesetzt, den man perGetLastError
abfragen kann. MitFormatMessage
kann man die Fehlerbeschreibung in Klartext formatieren. Ich sehe in deinem Code nirgendwo Fehlerbehandlung, vielleicht fängste damit erst Mal an. Dann siehste auch, was nicht klappt und hast einen Ansatzpunkt.