Ir para conteúdo
Fórum Script Brasil
  • 0

Background title bar → Windows 10 + vb6


ricardoweb084

Pergunta

Windows 10, vb6

Achei em algum lugar uma forma de altertar a cor da barra de título dos forms, no entanto, o borderstyle dele precisa ser 0 (none) para funcionar, aí o botão de fechar do form não funciona.

Alguém sabe alguma forma de alterar a cor da barra de títulos de um form no Windows 10 ?

código que uso

mSYS_cf = SetSysColors(1, COLOR_CAPTIONTEXT, vbWhite)

Declare Function SetSysColors Lib "user32" _
   (ByVal nChanges As Long, lpSysColor As _
   Long, lpColorValues As Long) As Long
    
   Public Const COLOR_CAPTIONTEXT = 9

 

Editado por ricardoweb084
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Postado (editado)

Obrigado, meu caro

O djrobertosc postou uma solução em outro fórum, testei funcionou parcialmente, somente a cor branca. Estou buscando outras soluções ainda.

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Const GWL_STYLE = -16
Private Const WS_CAPTION = &HC00000
Private Const WS_SYSMENU = &H80000
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_COLORKEY = &H1

Private Sub Form_Load()
' Altera a cor da barra de título para vermelho
SetWindowLong Me.hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) Or WS_CAPTION Or WS_SYSMENU
SetLayeredWindowAttributes Me.hwnd, RGB(255, 0, 0), 0, LWA_COLORKEY
End Sub

 

Editado por ricardoweb084
Link para o comentário
Compartilhar em outros sites

  • 0

Mas agora estou enfrentando outro pesadelo.

Se eu uso o form.borderstyle = 0 para não aparecer o TitleBar e uso o Menupopup no form, o TitleBar reaparece inevitavelmente. Então para usar esta alternativa, vou ter que achar outra alternativa para o menupopup 😕

Link para o comentário
Compartilhar em outros sites

  • 0

@ricardoweb084 ai foi bem além de onde eu teria ido. kkkk
 

Pelo que lembro, sendo isso a algum tempo, você pode olocar o formulaário em modo "modal" fazendo com que ele não mostre a barra de título, mesmo colocando um menu(popup) ao aperta o botão direito do mouse.

Claro que não vi seu código para entender porque isso está acontecendo.

Mesmo assim fico muito feliz de ter ajudado (mesmo que por pouco tempo) é assim mesmo. Hoje estou procurando soluções para criar aplicações um pouco fora do VBA devido a falta de funcionalidades/conhecimento.

Qualquer coisa pode chamar ai.

Link para o comentário
Compartilhar em outros sites

  • 0

Meu caro, decidi manter o design, gostei muito dele.

Através da sugestão de outro usuário em outro fórum, descobri que é possível usar o menupopup de outro form, então, criei um form oculto que ficar rodando no sistema e uso o menupopup dele em todos os outros forms.

Dá um trabalhão refazer todos os forms, mas pude manter o design que deselvovi.

Agradeço muito sua sugestão.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...