MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]form com fundo transparante

    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 5/7/2015, 19:47

    Boa tarde a todos, ante de pedir a ajuda de vcs eu pesquisei muito... aqui mesmo tem muito exemplos de código de form transparante mas eu não consegui adaptar os código de 32bits para o 64bits, gostaria da ajuda de cvs para fazer este código.

    fiz o form e ficou pequenas bordas brancas  q e o fundo do form que eu gostaria de remover


    link do arquivo
    https://mega.co.nz/#!wsgD2DiJ!y71pfoWiWehCHIUk7qFpM972TzPJ-eElDRlntm8L0gc
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 6/7/2015, 21:39

    Alguém por favor pode me ajudar com este código de transparência do formulário, porque o meu access de 64bits e os códigos que eu acho de exemplo e só de 32bits.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Noobezinho 12/7/2015, 02:38

    Andre

    Explique melhor o que deseja,  deixar transparente o formulário ou a janela do Access ficando o form visivel.

    Se for o formulário, qual deles, o formulário 2 ou o frmvendas ?

    Meu windows é 32 mas os código devem funcionar no 64 também.



    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 13/7/2015, 04:03

    seria no formulário mesmo, a parte que colocamos os objetos, e q eu montei um fomulário diferente retirei o estilo de borda e redesenhei as bordas com retângulos, mas se encostar os retângulos muito no quanto some as bordas

    O jeito q eu consegui fazer foi afastando um pouco mas fica uma linha banca envolta do formulário q e o fundo branco a onde colocamos os objetos do nosso formulário.

    [Resolvido]form com fundo transparante 23sc19c
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Noobezinho 13/7/2015, 09:45

    Experimente esse código

    Pra mim funciona legal.

    Crie um formulário e coloque uma imagem apenas e veja se funciona.

    Se funcionar, utilize nos teus formulários.

    e veja o porque de não funfar, se for o caso.

    Coloquei nos teus formulários aqui e não funfou, daí criei um outro e funfou.

    Copie e cole o código abaixo num módulo básico.
    a chamada para a função, está no inicio do  código

    [ ]'s


    Código:

    Option Compare Database
    Option Explicit
    'Como chamar:  MakeTransparent(Nomeform)




    Public Const RGN_AND = 1
    Public Const RGN_COPY = 5
    Public Const RGN_DIFF = 4
    Public Const RGN_OR = 2
    Public Const RGN_XOR = 3

    Public Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Public Declare PtrSafe Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Public Declare PtrSafe Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
    Public Declare PtrSafe Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Public Declare PtrSafe Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Public Declare PtrSafe Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

    Public Type POINTAPI
        tLng_Xloc As Long
        tLng_YLoc As Long
    End Type

    Public Type RECT
        tLng_Left As Long
        tLng_Top As Long
        tLng_Right As Long
        tLng_Bottom As Long
    End Type

    Public Sub MakeTransparent(rFrm_TheForm As Form)

    Dim lCtl_Control As Control
    Dim lRct_WinFrame As RECT
    Dim lRct_ClientArea As RECT
    Dim lRct_ControlArea As RECT
    Dim lPnt_TopLeft As POINTAPI
    Dim lPnt_BottRight As POINTAPI
    Dim lLng_CntlHandle As Long
    Dim lLng_ClientHandle As Long
    Dim lLng_FrameHandle As Long

    GetWindowRect rFrm_TheForm.hwnd, lRct_WinFrame
    GetClientRect rFrm_TheForm.hwnd, lRct_ClientArea

    lPnt_TopLeft.tLng_Xloc = lRct_WinFrame.tLng_Left
    lPnt_TopLeft.tLng_YLoc = lRct_WinFrame.tLng_Top
    lPnt_BottRight.tLng_Xloc = lRct_WinFrame.tLng_Right
    lPnt_BottRight.tLng_YLoc = lRct_WinFrame.tLng_Bottom

    ScreenToClient rFrm_TheForm.hwnd, lPnt_TopLeft
    ScreenToClient rFrm_TheForm.hwnd, lPnt_BottRight

    With lRct_WinFrame
        .tLng_Left = lPnt_TopLeft.tLng_Xloc
        .tLng_Top = lPnt_TopLeft.tLng_YLoc
        .tLng_Right = lPnt_BottRight.tLng_Xloc
        .tLng_Bottom = lPnt_BottRight.tLng_YLoc
    End With

    With lRct_ClientArea
        .tLng_Left = Abs(lRct_WinFrame.tLng_Left)
        .tLng_Top = Abs(lRct_WinFrame.tLng_Top)
        .tLng_Right = .tLng_Right + Abs(lRct_WinFrame.tLng_Left)
        .tLng_Bottom = .tLng_Bottom + Abs(lRct_WinFrame.tLng_Top)
    End With

    With lRct_WinFrame
        .tLng_Right = .tLng_Right + Abs(.tLng_Left)
        .tLng_Bottom = .tLng_Bottom + Abs(.tLng_Top)
        .tLng_Top = 0
        .tLng_Left = 0
    End With

    With lRct_ClientArea
        lLng_ClientHandle = CreateRectRgn(.tLng_Left, .tLng_Top, .tLng_Right, .tLng_Bottom)
    End With

    With lRct_WinFrame
        lLng_FrameHandle = CreateRectRgn(.tLng_Left, .tLng_Top, .tLng_Right, .tLng_Bottom)
    End With

    CombineRgn lLng_FrameHandle, lLng_ClientHandle, lLng_FrameHandle, RGN_XOR

    For Each lCtl_Control In rFrm_TheForm.Controls
        lRct_ControlArea.tLng_Left = lCtl_Control.Left \ 15
        lRct_ControlArea.tLng_Top = lCtl_Control.Top \ 15
        lRct_ControlArea.tLng_Right = (lCtl_Control.Left + lCtl_Control.Width - 15) \ 15
        lRct_ControlArea.tLng_Bottom = (lCtl_Control.Top + lCtl_Control.Height - 15) \ 15
        
        With lRct_ControlArea
            .tLng_Left = .tLng_Left + lRct_ClientArea.tLng_Left
            .tLng_Top = .tLng_Top + lRct_ClientArea.tLng_Top
            .tLng_Right = .tLng_Right + lRct_ClientArea.tLng_Left
            .tLng_Bottom = .tLng_Bottom + lRct_ClientArea.tLng_Top
            lLng_CntlHandle = CreateRectRgn(.tLng_Left, .tLng_Top, .tLng_Right, .tLng_Bottom)
        End With
        
        CombineRgn lLng_FrameHandle, lLng_CntlHandle, lLng_FrameHandle, RGN_OR
    Next lCtl_Control

    SetWindowRgn rFrm_TheForm.hwnd, lLng_FrameHandle, True

    End Sub
     


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 13/7/2015, 12:10

    Primeiramente bom dia Noobezinhoa e muito obrigado por sua atenção e a de todos q estão me ajudando, Fiz o q vc falou criei um modulo, mas a chamada para a função eu coloco no evento ao carregar do formulário? se for neste evento não deu certo.
    Vc pode colocar o meu exemplo q vc altero para eu baixar?


    Mais uma vez muito obrigado a todos q estão me ajudando.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Noobezinho 13/7/2015, 12:27

    Taí

    Como disse, uso windows 32.

    Esse teu exemplo, o código não funfa com teus formulários.
    O formulario que criei, frmTransp, fica invisível.
    Com o cabeçalho, fica "transparente".
    Se tirarmos o cabeçalho dele, colocando borda = nenhum,
    fica completamente invisível, ficando somente a imagem a mostra.


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 13/7/2015, 16:07

    agora deu certo mas sumiu as bordas azul do retângulo q esta fazendo o desenho de fora do formulário. tem como controlar para não sumir as bordas?

    [Resolvido]form com fundo transparante 1zqrnyv
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Noobezinho 13/7/2015, 17:42

    Pelas imagens, está usando borda=nenhum.
    Experimente criar outro retângulo.deixe com fundo transparente e borda azul.
    Então, posicione ele no fundo de tudo (enviar para trás).
    Caso não funfe, use um controle imagem, da mesma forma.


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 13/7/2015, 22:49

    agora deu certo, muito obrigado a todo e valeu mesmo Noobezinho

    eu mudei estas propriedade e deu certo as bordas apareceram.

    For Each lCtl_Control In rFrm_TheForm.Controls
    lRct_ControlArea.tLng_Left = lCtl_Control.Left \ 16
    lRct_ControlArea.tLng_Top = lCtl_Control.Top \ 16
    lRct_ControlArea.tLng_Right = (lCtl_Control.Left + lCtl_Control.Width - 20) \ 14.5
    lRct_ControlArea.tLng_Bottom = (lCtl_Control.Top + lCtl_Control.Height - 7.3) \ 15
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Noobezinho 14/7/2015, 00:28

    Que bom que funfou! Wink

    Valeu o retorno!

    Boa sorte



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    AndrePeteca
    AndrePeteca
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 24/02/2015

    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  AndrePeteca 14/7/2015, 03:48

    muito obrigado mesmo.

    Conteúdo patrocinado


    [Resolvido]form com fundo transparante Empty Re: [Resolvido]form com fundo transparante

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 01:46