SETPARENT E SETLAYEREDWINDOWATTRIBUTES - BUG

 Tópico anterior Próximo tópico Novo tópico

SETPARENT E SETLAYEREDWINDOWATTRIBUTES - BUG

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#491661 - 03/12/2019 09:41:56

CARLINHOS_SONEG
GUARIBA
Cadast. em:Maio/2004


Pessoal estou tentando fazer um form transparente porm um boto do form precisa ficar visvel. J consegui isso sem muito trabalho utilizei as APIs SetWindowLong e SetLayeredWindowAttributes.
Porm esse mesmo form invisvel s com o boto aparecendo precisa ser setado como filho usando a API SetParent, j consegui tambm, porm o erro est aqui, pois, quando coloco ele como filho usando o setparent meu form desaparece.
O mais engraado que se uso essa mesma rotina em uma maquina virtual com as mesmas caractersticas da verdadeira ele funciona certinho.
Algum j conseguiu fazer isso? Abaixo deixo o codigo....

[]transparente
    Me.BackColor = vbCyan
    SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
    SetLayeredWindowAttributes Me.hwnd, vbCyan, 0&, LWA_COLORKEY
[]funciona normal, form fica transparent com o boto normal (visivel)

[]aqui era para ele ficar []preso[] em outra tela
SetParent(Me.hwnd, hwnd_de_outra_tela)
[]porm o form simplesmente some


If Sei = True then
Repondo
else
nao_respondo
end if

Mas pelo menos no atrapalho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



Resposta escolhida #491665 - 03/12/2019 13:00:48

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Ja tentou apos o setparent fazer seuform.show???

____________________________________________________________________
Episcopal Studios


#491666 - 03/12/2019 13:02:47

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Pode usar tambm Movewindow para left top = 0

____________________________________________________________________
Episcopal Studios


#491674 - 04/12/2019 08:14:02

CARLINHOS_SONEG
GUARIBA
Cadast. em:Maio/2004


Eu tentei as duas opes mas a tela no aparece de jeito nenhum, se eu no seto o setparente fica tudo certo, porm se eu fizer isso, nada faz a tela aparecer denovo

If Sei = True then
Repondo
else
nao_respondo
end if

Mas pelo menos no atrapalho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



#491699 - 04/12/2019 22:20:19

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Qual sistema operacional???

____________________________________________________________________
Episcopal Studios


#491703 - 05/12/2019 08:26:47

CARLINHOS_SONEG
GUARIBA
Cadast. em:Maio/2004


Windows 7 64 bits, na maquina virtual vbox tambm roda o mesmo sistema w7 64 bits, porm nela funciona perfeitamente


If Sei = True then
Repondo
else
nao_respondo
end if

Mas pelo menos no atrapalho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



#491736 - 06/12/2019 20:57:26

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Muito estranho funcionar em um e noutro no. No por nada mas voc ja tentou ir no site do vbforums.com???

L tem uns hackers do vb6. Eles vo achar interessante seu problema.

____________________________________________________________________
Episcopal Studios


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por CARLINHOS_SONEG em 12/02/2020 08:26:41