Como confirmar a resolução do ícone?

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como confirmar a resolução do ícone?

Mensagem por JoséQuintas »

Como confirmar a resolução de um ícone?

Teoricamente coloquei no meu aplicativo pra selecionar automaticamente um ícone 16x16, 32x32, 48x48 ou 64x64.

Como eu consigo confirmar na prática isso?

Por exemplo, minha foto, como saber qual o tamanho que foi selecionado?
icone.png
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

Como confirmar a resolução do ícone?

Mensagem por asimoes »

Quintas,

Você pode usar: considerando que o icone é um bitmap

Código: Selecionar todos

Fi_Initialise()
__nHandleFile := Fi_Load( FIF_BMP, cBitFile, BMP_DEFAULT )
__nWidth      := Fi_GetWidth( __nHandleFile )
__nHeight     := Fi_GetHeight( __nHandleFile )
Fi_DeInitialise()
#include "freeimag.ch"

Lib hbfimage.hbc

Formatos que a lib suporta:

FIF_BMP
FIF_ICO
FIF_JPEG
FIF_JNG
FIF_KOALA
FIF_LBM
FIF_IFF
FIF_MNG
FIF_PBM
FIF_PBMRAW
FIF_PCD
FIF_PCX
FIF_PGM
FIF_PGMRAW
FIF_PNG
FIF_PPM
FIF_PPMRAW
FIF_RAS
FIF_TARGA
FIF_TIFF
FIF_WBMP
FIF_PSD
FIF_CUT
FIF_XBM
FIF_XPM
FIF_DDS
FIF_GIF
FIF_HDR
►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

Como confirmar a resolução do ícone?

Mensagem por JoséQuintas »

Não é isso.

Tenho lá um arquivo de ícone JOSE.ICO
Esse arquivo contém imagens nos tamanhos 16 x 16, 32 x 32, 48 x 48, 64 x 64
Carrego esse ícone via API do Windows que escolhe qual tamanho usar.
Recarrego o mesmo ícone ao redimensionar a tela.

E o ícone atualmente na tela é do tamanho (?)
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

Como confirmar a resolução do ícone?

Mensagem por asimoes »

Em harbour ? complicado !, acho que não tem isso.
►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
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Como confirmar a resolução do ícone?

Mensagem por acelconsultoria »

Quintas,

Isso aí não tem como pegar pela API wapi_SendMessage(nWin, TB_GETBUTTON) ???

Na WVG vi algo como a função wvg_SendToolBarMessage(). E no wvtwin.ch tem as flags montadas TB_GETBUTTONSIZE e TB_GETPADDING, pra "pescar" essas informações.

Infelizmente, eu não consigo testá-las aqui e nem sei qual a sintaxe certa pra se trabalhar. Mas acredito que seja esse o caminho.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Como confirmar a resolução do ícone?

Mensagem por acelconsultoria »

Quintas,

Eu fiz o seguinte teste, usando wapi_GetSystemMetrics:

Código: Selecionar todos

#define CXICON 11
#define CYICON 12

Function Cadastro()
Local TamX, TamY
AbreJanela()

If CriaToolBar() = .F.
   Alerta("Não foi possível criar a Barra de Ferramentas")
EndIf

TamX := wapi_GetSystemMetrics( CXICON )
TamY := wapi_GetSystemMetrics( CYICON )

@ 01,01 say TamX // aqui apareceu 32, que foi exatamente a resolução que defini para os icones da minha toolbar
@ 02,01 say TamY // também apareceu 32

Inkey( 0 )

FechaJanela()
Return Nil
Link com a função GetSystemMetrics e os códigos dos objetos de tela:
https://msdn.microsoft.com/en-us/librar ... 85(v=vs.85).aspx
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como confirmar a resolução do ícone?

Mensagem por JoséQuintas »

Acho que só vai ter uma opção: no olhômetro

O problema é:
Pode ter ampliado/reduzido a 16x16, 32x32, 48x48, 64x64.
Se testar o tamanho final, vai ser sempre o mesmo.

Tentar descobrir se dá pra montar o multiícone com imagens diferentes, aí basta olhar qual a imagem usada.
Na prática, ainda nem sei se deu certo o multiícone.... rs
É justamente isso que estou tentando descobrir.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como confirmar a resolução do ícone?

Mensagem por JoséQuintas »

Um teste em 4 tamanhos diferentes.
icone1.png
icone2.png
icone3.png
icone4.png
O difícil é saber qual tamanho de ícone foi usado em cada um.
A maioria dos ícones só tem opção 32 x 32.
O duplicata é um multiícone com opções 16x16, 32x32, 48x48 e 64x64
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