Página 1 de 1

Incluir fonte de letra no aplicativo

Enviado: 19 Jan 2018 23:46
por JoséQuintas
Tem como incluir fonte de letra no aplicativo?
menuwvg.png
menu3.png
Esta segunda tela está bem mais legível que a primeira.
Trata-se de um fonte não disponível no Windows.

Como poderia ser feito pra não precisar instalar no Windows?

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 00:59
por Claudio Soto
En C con:

char * Filename = hb_parc(1);
AddFontResourceEx( Filename, FR_PRIVATE, NULL );

ver: https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 08:02
por JoséQuintas
Encontrei outra mais legal: AddFontMemResourceEx()

https://msdn.microsoft.com/pt-br/librar ... s.85).aspx

Todas juntas:

Código: Selecionar todos

FUNCTION AddFontResource( cFileName )

   RETURN CallDll( "gdi32.dll", "AddFontResourceA", cFileName )

FUNCTION RemoveFontResource( cFileName )

   RETURN CallDll( "gdi32.dll", "RemoveFontResourceA", cFileName )

FUNCTION AddFontFromMem( cFontTxt )

   RETURN CallDll( "gdi32.dll", "AddFontMemResourceEx", @cFontTxt, Len( cFontTxt ), 0, 1 )

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 15:57
por Toledo
Amigos, no Harbour 3.2 ou 3.4 tem a função WAPI_AddFontResourceEx().

Neste tópico tem um exemplo de uso:

https://pctoledo.org/forum/viewtopic.php?p=90769

Abraços,

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 16:41
por JoséQuintas
Realmente.... mas usei a opção que mencionei, que achei muuuuuito melhor, por embutir os fontes dentro do EXE.
hbmk2 -find addfont

hbwin.hbc (installed):
wapi_AddFontMemResourceEx()
wapi_AddFontResource()
wapi_AddFontResourceEx()
addons\sefazclass\josequintas.hbc (not installed):
addfontfrommem()
Agora só remover as funções que criei, que já existiam..... rs
Por enquanto ficou assim:

Código: Selecionar todos

// FUNCTION AddFontResource( cFileName );    RETURN CallDll( "gdi32.dll", "AddFontResourceA", cFileName )
// FUNCTION RemoveFontResource( cFileName ); RETURN CallDll( "gdi32.dll", "RemoveFontResourceA", cFileName )

FUNCTION AddExtraFonts()

   AddFontFromMem( FontOfficeCode() )
   AddFontFromMem( FontStop() )

   RETURN NIL

FUNCTION AddFontFromMem( cFontTxt )

   RETURN CallDll( "gdi32.dll", "AddFontMemResourceEx", @cFontTxt, Len( cFontTxt ), 0, 1 )

FUNCTION FontOfficeCode()

   #pragma __binarystreaminclude "..\resource\officecodepro-regular.ttf"   | RETURN %s

FUNCTION FontStop()

   #pragma __binarystreaminclude "..\resource\stopn.ttf"   | RETURN %s

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 16:51
por JoséQuintas
Nem alterou muito o fonte....

Troquei isto: RETURN CallDll( "gdi32.dll", "AddFontMemResourceEx", @cFontTxt, Len( cFontTxt ), 0, 1 )
Por isto: RETURN wapi_AddFontMemResourceEx( @cFontTxt, Len( cFontTxt ), 0, 1 )

Funcionou também.

Incluir fonte de letra no aplicativo

Enviado: 20 Jan 2018 16:55
por JoséQuintas
Comentário final:
A que usei não tem no Harbour 3.2, só no Harbour 3.4
Mas tá fácil adicionar, como pode ser visto no post anterior.