Форум: "WinAPI";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизAddFontMemResourceEx Найти похожие ветки
← →
mrcat (2003-07-09 15:17) [0]Добрый день!
В программе необходимо грузить шрифты из *.dll ИспользуюAddFontMemResourceEx
для добавления ресурса шрифта. Проблема в том, послеLoadFontResource
шрифт в системе не появляется, хотя возвращаемоеAddFontMemResourceEx
значение больше 0 (В MSDN указано, чтоAddFontMemResourceEx
возвращает хэндл добавленного шрифта если шрифт успешно добавлен, или 0 в случае ошибки). Может я неверно представляю работу функции? Помогите разобраться.
P.S.AddFontMemResourceEx
включена начиная с W2k.
procedure TMyForm.LoadFontResource(const AFontName: string);
resourcestring
SResNotFound = "...";
var
hResFind,
hResFont,
hAddFont: THandle;
hResSize: Integer;
DesignVector: PDesignVector;
begin
New(DesignVector);
try
hResFind := FindResource(hInstance, PChar(AFontName), "FONT");
hResFont := LoadResource(hInstance, hResFind);
if (hResFind = 0) or (hResFont = 0) then
raise Exception.Create(SResNotFound);
hResSize := SizeOfResource(hInstance, hResFont);
hAddFont := AddFontMemResourceEx(Pointer(hResFont), hResSize, nil,
Pointer(DesignVector));
if hAddFont = 0 then
raise Exception.Create(SResNotFound)
else SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
finally
( DesignVector)Добрый день!
В программе необходимо грузить шрифты из *.dll ИспользуюAddFontMemResourceEx
для добавления ресурса шрифта. Проблема в том, послеLoadFontResource
шрифт в системе не появляется, хотя возвращаемоеAddFontMemResourceEx
значение больше 0 (В MSDN указано, чтоAddFontMemResourceEx
возвращает хэндл добавленного шрифта если шрифт успешно добавлен, или 0 в случае ошибки). Может я неверно представляю работу функции? Помогите разобраться.
P.S.AddFontMemResourceEx
включена начиная с W2k.
procedure TMyForm.LoadFontResource(const AFontName: string);
resourcestring
SResNotFound = "...";
var
hResFind,
hResFont,
hAddFont: THandle;
hResSize: Integer;
DesignVector: PDesignVector;
begin
New(DesignVector);
try
hResFind := FindResource(hInstance, PChar(AFontName), "FONT");
hResFont := LoadResource(hInstance, hResFind);
if (hResFind = 0) or (hResFont = 0) then
raise Exception.Create(SResNotFound);
hResSize := SizeOfResource(hInstance, hResFont);
hAddFont := AddFontMemResourceEx(Pointer(hResFont), hResSize, nil,
Pointer(DesignVector));
if hAddFont = 0 then
raise Exception.Create(SResNotFound)
else SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
finally
Dispose(DesignVector);
end;
end;
← →
mrcat (2003-07-10 10:32) [1]Удалено модератором
Примечание: Offtopic
← →
mrcat (2003-07-17 14:29) [2]Дополнение
hResSize := SizeOfResource(hInstance, hResFont);
следует читать как:
hResSize := SizeOfResource(hInstance, hResFind);
кроме того, проверилGetLastError
, возвращает: "Класс не существует." Ошибка: [1411].
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c