Ir para conteúdo


Foto

Problema com mensagem usando GDIPlus


  • Por favor, faça o login para responder
47 respostas neste tópico

#1 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 02 maio 2017 - 10:02

Peguei um exemplo que mostra uma imagem e um um texto usando GDIPlus mas encontrei 3 problemas e só consegui resolver um deles, o primeiro era limpar a mensagem anterior para mostrar a próxima e este eu resolvi ocultando e depois mostrando novamente a GUI filha porém o segundo que é trocar a cor da fonte e o 3º que é um serilhado branco em algumas letras também não consegui tirar, segue o script para teste!

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Obs: O serilhado ficou visível na letra "S, O" e no número "1"

Arquivo(s) anexado(s)



#2 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 02 maio 2017 - 10:37

Oi Belini.

 

Erro na linha 26: ghGDIPDll não encontrada



#3 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 02 maio 2017 - 11:04

Peguei um exemplo que mostra uma imagem e um um texto usando GDIPlus mas encontrei 3 problemas e só consegui resolver um deles, o primeiro era limpar a mensagem anterior para mostrar a próxima e este eu resolvi ocultando e depois mostrando novamente a GUI filha porém o segundo que é trocar a cor da fonte e o 3º que é um serilhado branco em algumas letras também não consegui tirar, segue o script para teste!

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Obs: O serilhado ficou visível na letra "S, O" e no número "1"

 

Essa do serrilhado é de lascar mesmo, que chato , agora sobre a cor, acho que é default a cor Preta do texto na Include.

 

Testei aqui e... tem que alterar em _GDIPlus_BrushCreateSolid() na #include <GDIPlus.au3> na função _GDIPlus_GraphicsDrawString ai troca a cor de Boa.

 

Coloque a cor que quiser lá . :up:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

:lol:

 

Manimal é só declarar a $ghGDIPDll como Global , é que o Belini usa a versão antiga do AutoIt;)


Editado por Fábio iGames, 03 maio 2017 - 08:35 .


#4 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 02 maio 2017 - 11:59

Obrigado Fábio!

 

Não tenho experiência com GDI, mas estou tentando aprender  :mad2:



#5 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 02 maio 2017 - 12:00

Oi Belini.

 

Erro na linha 26: ghGDIPDll não encontrada

Prá falar a verdade esta linha não serve prá nada pois retirando ela funciona do mesmo jeito!

 

 

Testei aqui e... tem que alterar em _GDIPlus_BrushCreateSolid() na #include <GDIPlus.au3> na função _GDIPlus_GraphicsDrawString ai troca a cor de Boa.

 

Coloque a cor que quiser lá . :up:

 

Ex: _GDIPlus_BrushCreateSolid(0xFF00FF00)  ; ==>  = Verde Acentuado , Ótimo Para Overlay.   :lol:

 

 

Era isto mesmo @Fabio coloquei a cor lá e deu certo, agora só falta o serrilhado!



#6 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 02 maio 2017 - 03:07

:mad2:


Editado por mutleey, 02 maio 2017 - 08:14 .


#7 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 02 maio 2017 - 07:53

Serrilhado que você fala é o texto com umas bordinhas brancas? Porque fora isso não encontrei nada  de errado aqui.

 

Vou pegar um exemplo aqui. Só um segundo. Você vai ter de apagar os elementos e redesenha-los.

 

Olha aqui esse exemplo. Eu deixei tudo comentado. Eu fiz o seguinte...redesenhei os elementos em um loop, mas você pode desenhar ao apertar o botão

 

Ai desse modo vc não precisa de janela auxiliar.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido


Editado por Pedro Pinheiro, 03 maio 2017 - 06:34 .


#8 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 02 maio 2017 - 09:03

Eu nem cheguei a executar o script, mas se não me engano da resolver o problema do serrilhado com:

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Link da MSDN

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



#9 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 02 maio 2017 - 10:46

Sobre o serrilhado eu não consegui resolver...maaass tem como. Tipo.. Você vai ter de mudar a cor de fundo da imagem para "0xFF00FF" ai na hora de colocar transparencia tem que limpar tudo que for que for dessa cor com _GDIPlus_GraphicsClear($hBuffer,0xFFFF00FF)  ai no caso tem um _WinAPI_SetLayeredWindowAttributes que bota transparencia na GUI ai dai pra frente meu cerebro trava já que o gdi apaga oq for verde e o winApi apaga o background da GUI...Vou ver aqui



#10 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 03 maio 2017 - 01:35

@Pedro Pinheiro eu também fico perdido quando vou usar funções com GDI e ainda não encontrei solução também!

 

@Joelson0007 não deu certo pois prá manter o fundo transparente eu preciso usar com _GDIPlus_GraphicsCreateFromHWND() e não com _gdiplus_imagegetgraphicscontext() prá usar como vc falou eu não pderia ter a GUI filha mas sem ela não consegui colocar uma imagem mantendo o fundo transparente!



#11 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 03 maio 2017 - 03:30

Como assim fundo transparent, está usando um PNG como base para GUI?



#12 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 03 maio 2017 - 04:17

 

Serrilhado que você fala é o texto com umas bordinhas brancas? Porque fora isso não encontrei nada  de errado aqui.

 

Vou pegar um exemplo aqui. Só um segundo. Você vai ter de apagar os elementos e redesenha-los.

 

Olha aqui esse exemplo. Eu deixei tudo comentado. Eu fiz o seguinte...redesenhei os elementos em um loop, mas você pode desenhar ao apertar o botão

 

Ai desse modo vc não precisa de janela auxiliar.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

@Pedro Pinheiro você já está na categoria de Jedi. (Jedai)     :like_icon:  kkkkkkk

 

Show de Bola esse Exemplo.  :600866:

 

Nada melhor do que ler bem o Help e utilizar os exemplos com sabedoria. :up:

 

Ficou TOP.  ;)


Editado por Fábio iGames, 03 maio 2017 - 06:46 .


#13 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 03 maio 2017 - 09:05

Como assim fundo transparent, está usando um PNG como base para GUI?

 

Isto mesmo @joelson0007 quero a Gui com fundo transparente pois estou usando uma imagem .png!



#14 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 03 maio 2017 - 09:38

Então aquele método ali, é pra funcionar perfeitamente, vou preparar um exemplo pra você.



#15 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 04 maio 2017 - 12:59

Não sei se ajuda, mas se vc usar a fonte tipo "Arial Black" com o tamanho 54 o serrilhado sai.



#16 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 04 maio 2017 - 01:12

Não sei se ajuda, mas se vc usar a fonte tipo "Arial Black" com o tamanho 54 o serrilhado sai.

 

kkkkkk, eu descobri a mesma coisa, ontem. :lol:

 

E usando a Tahoma com Tamanho 63 o serrilhado some também. :up:

 

Tem que testar o tamanho ideal para cada tipo de fonte, mas esses tamanhos são muito grandes para determinadas janelas e etc. :P

 

Prefiro usar com Background Semi transparente usando _WinAPI_SetLayeredWindowAttributes , ou fazendo Texto em GDI+ com Borda.  ;)



#17 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 04 maio 2017 - 08:31

Olha ai o exemplo pra tentar ajudar, não sei se resolve o problema de vocês, mas fiz a tentativa.

 

 

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Obs:Esse código eu fiz em 2013, nem eu sei mais o que era isso ai  :o

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

  35,18K   5 Downloads



#18 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 04 maio 2017 - 09:08

Olha ai o exemplo pra tentar ajudar, não sei se resolve o problema de vocês, mas fiz a tentativa.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Obs:Esse código eu fiz em 2013, nem eu sei mais o que era isso ai  :o

 

attachicon.gif

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Muito bonito esse exemplo, show de Bola @joelson0007.

 

Tem mais pérolas guardadas ai ? TOP  :up:

 

#OBRIGADO  :like_icon:


Editado por Fábio iGames, 04 maio 2017 - 09:13 .


#19 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 04 maio 2017 - 09:51

Ow Fabio. Se vdescobrir como coloca borda em um texto para ser atualizado constantemente me fala. Porque eu só consegui mudar a cor em texto.

#20 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 04 maio 2017 - 10:08

Ow Fabio. Se vdescobrir como coloca borda em um texto para ser atualizado constantemente me fala. Porque eu só consegui mudar a cor em texto.

 

Pedro já tem exemplo ai no Help , mas vou postar um link de um que fiz para um usuário do ArcadeBr em 2014.

 

Foi só uma adaptação que retirei do próprio Help , espera ai.

 

Esse ai :  :up:

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Foi baseado nesse:  :lol:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

 

Esse é do próprio Help:  ;)

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Editado:

 

:digno1:  Ah ia esquecendo @joelson0007 graças a sua dica o problema do SERRILHADO foi embora pra nunca mais voltar :D .

 

Mas tem que usar o último parâmetro em 1 assim:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Funciona em tamanhos de textos (fonte) bem pequenos , SHOW DE BOLA. :guitar:

 

Nas versões recentes pode declarar no topo como Global $ghGDIPDll e pronto.   B)

 

#OBRIGADO joelson0007  :like_icon:

 

:ILA2:


Editado por Fábio iGames, 04 maio 2017 - 10:29 .





0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência