1
10
这里是Delphi版本:
要像这样使用:
|
2
2
我发现 this 与谷歌合作。我已经剪了&将相关代码粘贴到下面。
下面的C代码将从DLL资源加载字体,并在使用完毕后将其从内存中释放。 DWORD Count; HMODULE Module = LoadLibrary("mylib.dll"); HRSRC Resource = FindResource(Module,MAKEINTRESOURCE(34),RT_FONT); DWORD Length = SizeofResource(Module,Resource); HGLOBAL Address = LoadResource(Module,Resource); HANDLE Handle = AddFontMemResourceEx(Address,Length,0,&Count); /* Use the font here... */ RemoveFontMemResourceEx(Handle); FreeLibrary(Module); |
3
1
下面是一些代码,可以从可执行文件中加载/使用字体(即,字体是作为资源嵌入的,而不是通常必须安装到Windows中的东西)。 请注意,该字体可用于 任何 我不知道你会觉得这有多有用,但我已经用过好几次了。我从未将字体放入dll(我更喜欢这种“嵌入exe”的方法),但不要认为它会改变太多东西。 procedure TForm1.FormCreate(Sender: TObject); var ResStream : TResourceStream; sFileName : string; begin sFileName:=ExtractFilePath(Application.ExeName)+'SWISFONT.TTF'; ResStream:=nil; try ResStream:=TResourceStream.Create(hInstance, 'Swisfont', RT_RCDATA); try ResStream.SaveToFile(sFileName); except on E:EFCreateError Do ShowMessage(E.Message); end; finally ResStream.Free; end; AddFontResource(PChar(sFileName)); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); end; procedure TForm1.FormDestroy(Sender: TObject); var sFile:string; begin sFile:=ExtractFilePath(Application.ExeName)+'SWISFONT.TTF'; if FileExists(sFile) then begin RemoveFontResource(PChar(sFile)); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); DeleteFile(sFile); end; end; |
vini · 安装wfp内核驱动程序后,devcon状态返回39 2 年前 |
I101I · 如何镜像HBITMAP 2 年前 |
E235 · 如何查看谁创建了Windows NamedPipe 2 年前 |
Pizza Ãcke · 创建带有内存映像的Windows托盘图标 2 年前 |
Jabu · 如何获取列表框滚动条“拇指”的高度? 2 年前 |
tree1234 · 对可执行文件进行代码设计,并允许修改某些字节 2 年前 |
Penachia · PDF FontDescriptor标志 6 年前 |