Ir para conteúdo


Foto

Duvida CheckBox

autoit

Melhor Resposta Manimal, 13 fevereiro 2017 - 08:10

Olá Carlos Henrique Cerqueira.

 

Não é o seu AutoIt que está com bug, quem tem bug é a função GUICtrlCreateCheckbox.

Por algum motivo, ela não aceita a modificação da cor do texto como deveria.

A solução temporária (workaround) é forçar o Windows a atualizar os controles gráficos antes de ativar a janela.

  1.  
  2. #include <StaticConstants.au3>
  3. #include <GUIConstantsEx.au3>
  4. #include <WindowsConstants.au3>
  5. #Include <GuiButton.au3>
  6. #include <ComboConstants.au3>
  7. #include <ButtonConstants.au3>
  8. #include <EditConstants.au3>
  9. #include <TabConstants.au3>
  10.  
  11. $interface = GUICreate("interface",350,221,-1,-1,-1,-1)
  12. GUISetBkColor(0x000000, $interface)
  13. GUICtrlCreateCheckbox("My Text",50,100,150,20,-1,-1)
  14. GUICtrlSetFont(-1,14,700,0,"Transformers Movie")
  15. GUICtrlSetColor(-1,"0xFFFFFF")
  16.  
  17. ; ESTA LINHA FAZ A MÁGICA ACONTECER (pelo menos até consertarem este bug na próxima versão)
  18. DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", 0, "wstr", 0)
  19.  
  20. GUISetState(@SW_SHOW)
  21.  
  22.  
  23. While 1
  24. $nMsg = GUIGetMsg()
  25. Switch $nMsg
  26. Case $GUI_EVENT_CLOSE
  27.  
  28. EndSwitch
  29. WEnd
  30.  

Também recomendo, por motivos de clareza do código usar as constantes que ficam no ColorConstants.au3, porque daí:

  1.  
  2. GUICtrlSetColor(-1, "0xFFFFFF")

vira

  1.  
  2. GUICtrlSetColor(-1, $COLOR_WHITE)

e assim por diante...

 

Visualizar todo o conteúdo do post


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

#1 CarlosVru

CarlosVru

    Membro

  • Membros
  • Pip
  • 17 posts
  • Locationserra

Postado 12 fevereiro 2017 - 08:21

$interface = GUICreate("interface",350,221,-1,-1,-1,-1)
GUISetBkColor(0xFFFFFF,$interface)
GUICtrlCreateCheckbox("My Text",50,100,150,20,-1,-1)
GUICtrlSetFont(-1,8,700,0,"Transformers Movie")
GUICtrlSetColor(-1,"0xFFFFFF")

GUISetState(@SW_SHOW,$interface)

 

Olá amigos! estou tendo problemas em alterar a cor da fonte (no caso a letra) do texto da checkbox, não importa qual cor tento colocar sempre permanece preto...



#2 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 294 posts

Postado 12 fevereiro 2017 - 09:41

Aqui funcionou normalmente... a unica coisa era que o fundo da gui esta branco e a fonte tambem

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


Editado por mutleey, 12 fevereiro 2017 - 09:42 .


#3 CarlosVru

CarlosVru

    Membro

  • Membros
  • Pip
  • 17 posts
  • Locationserra

Postado 12 fevereiro 2017 - 11:32

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

Meu autoit está com problemas.. eu executo esse codigo acima.. o fundo esta preto e a letra nao nao ficar branca e nem em outra cor... teria como me mandar uma copia do seu autoit para mim? 



#4 Manimal

Manimal

    Membro Nível 3

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

Postado 13 fevereiro 2017 - 08:10   Melhor Resposta

Olá Carlos Henrique Cerqueira.

 

Não é o seu AutoIt que está com bug, quem tem bug é a função GUICtrlCreateCheckbox.

Por algum motivo, ela não aceita a modificação da cor do texto como deveria.

A solução temporária (workaround) é forçar o Windows a atualizar os controles gráficos antes de ativar a janela.

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

Também recomendo, por motivos de clareza do código usar as constantes que ficam no ColorConstants.au3, porque daí:

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

vira

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

e assim por diante...

 







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