Saber o tamanho do Icone (W/H)

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Saber o tamanho do Icone (W/H)

Mensagem por asimoes »

Pessoal,

Tem alguma função em harbour que passando como parâmetro o icone e retorne o tamanho w e h dele ?
Que não seja pela freeimage
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Saber o tamanho do Icone (W/H)

Mensagem por asimoes »

Consegui usando a HwGui

Código: Selecionar todos

#include "hwgui.ch"
FUNCTION TamIcone
LOCAL nWidthIcon, nHeightIcon, aTamIcon
    
nhandle := hwg_Loadimage( 0, 'iPrinter24.ico', IMAGE_ICON, nWidthIcon, nHeightIcon, LR_DEFAULTSIZE + LR_LOADFROMFILE + LR_SHARED )
 
aTamIcon := hwg_Geticonsize( nhandle )

nW :=  aTamIcon[1] 
nH :=  aTamIcon[2] 
 
hwg_MsgInfo( "W  " + str(nw) + " " + "H " + Str(nh) )

RETURN aTamIcon
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Saber o tamanho do Icone (W/H)

Mensagem por JoséQuintas »

Só usar a do Windows, ou do Harbou4 3.4 que é compatível, e não precisa saber do tamanho original, melhor que isso, é selecionada atomaticamente a maior antes de redimensionar.
LoadImage function


HANDLE WINAPI LoadImage(
_In_opt_ HINSTANCE hinst,
_In_ LPCTSTR lpszName,
_In_ UINT uType,
_In_ int cxDesired,
_In_ int cyDesired,
_In_ UINT fuLoad
);
https://msdn.microsoft.com/pt-br/librar ... s.85).aspx

Infelizmente não tem no XP, só do Windows Vista pra frente....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Saber o tamanho do Icone (W/H)

Mensagem por asimoes »

Quintas,

A hwgui usa essa função LoadImage dentro da hwg_Loadimage
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Saber o tamanho do Icone (W/H)

Mensagem por JoséQuintas »

E eu uso no wvgButton que modifiquei.

Código: Selecionar todos

::SendMessage( BM_SETIMAGE, WIN_IMAGE_ICON, wvg_LoadImage( ::oImage[ 3 ], nLoadFromDiskFile, WIN_IMAGE_ICON, nWidth, nHeight ) )
que por usa vez foi reescrito pelo Viktor assim:

Código: Selecionar todos

/* https://msdn.microsoft.com/library/ms648045
   Windows 2000 and upper, wapi_LoadImage() can resize image

   nSource: 0 ResourceIdByNumber
   nSource: 1 ResourceIdByName
   nSource: 2 ImageFromDiskFile */
FUNCTION wvg_LoadImage( ncImage, nSource, nBmpOrIcon, nWidth, nHeight )

   hb_defaultValue( @nBmpOrIcon, WIN_IMAGE_BITMAP )

   RETURN iif( hb_defaultValue( nSource, 0 ) == 2, ;
      wapi_LoadImage( , ncImage, nBmpOrIcon, nWidth, nHeight, WIN_LR_LOADFROMFILE + WIN_LR_DEFAULTSIZE ), ;
      wapi_LoadImage( wapi_GetModuleHandle(), ncImage, nBmpOrIcon, nWidth, nHeight, WIN_LR_DEFAULTSIZE ) )
Nota: somente fonte PRG
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder