Página 1 de 1
Saber o tamanho do Icone (W/H)
Enviado: 18 Dez 2017 08:20
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
Saber o tamanho do Icone (W/H)
Enviado: 18 Dez 2017 08:52
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
Saber o tamanho do Icone (W/H)
Enviado: 18 Dez 2017 10:05
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....
Saber o tamanho do Icone (W/H)
Enviado: 18 Dez 2017 10:15
por asimoes
Quintas,
A hwgui usa essa função LoadImage dentro da hwg_Loadimage
Saber o tamanho do Icone (W/H)
Enviado: 18 Dez 2017 10:41
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