Jump to content
Fórum Script Brasil
  • 0

Background title bar → Windows 10 + vb6


ricardoweb084

Question

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

 

Edited by ricardoweb084
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
Posted (edited)

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

 

Edited by ricardoweb084
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...