ABRIR FORM ACIMA DA BARRA DE TAREFAS DO WINDOWS
Olá Possuo um form com tamanho pequeno pois conforme a ação do usuário ele muda de lugar. Gostaria de saber como faço para que esse form sempre apareça acima da barra de tarefas do Windows e como faço para que ele passe o foco pra outro programa sem que fique atraz do msm.
Grato
Grato
procure por ontop aqui mesmo no site, o qu evc quer é deixar sobre por cima
ai recomendo a por a chamada do ontop num timer para cada 10 segundos
pq ai mesmo que algo entrar em foco, o timer faz voltar o foco pro seu soft
abraços
ahhhhhhhhhhhhhhh
tbm ponha o form para inicial maximizada e borderslyle=0 e o WindowState = 2
abraços
ai recomendo a por a chamada do ontop num timer para cada 10 segundos
pq ai mesmo que algo entrar em foco, o timer faz voltar o foco pro seu soft
abraços
ahhhhhhhhhhhhhhh
tbm ponha o form para inicial maximizada e borderslyle=0 e o WindowState = 2
abraços
Na verdade você terá que trabalhar com Matriz.
Tem um ótimo exemplo aqui no site, segue link:
http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=881
é uma janela no estilo a do MSN. De uma estuda e você logo estará posicionando o form aonde quiser.
Abraços!
Tem um ótimo exemplo aqui no site, segue link:
http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=881
é uma janela no estilo a do MSN. De uma estuda e você logo estará posicionando o form aonde quiser.
Abraços!
é que é assim. Meu form tem uma altura fixa. e a largura varia de acordo com a tela do usuário. Queria que ao clicar no botao a tela ficasse em cima da barra de tarefas. Pelo projeto que VELDRAME me passo percebi q tenho q calcular o tamanho da barra de tarefas e dae sim posiciona-la em cima. So que nao capitei a msg. eu calculo o tamanho e desconto isso de quanto?
Ele cria a matriz automaticamente e coloca acima da Data/Hora na SysTray na Função [ô]TIMER_1[ô]
QUANTO A LARGURA....
Private Sub Form_Load()
Me.Width = Screen.Width [txt-color=#e80000] [ô]Aqui é a Largura da sua Tela, ajuste conforme queira[/txt-color]
Me.Show
Me.Top = Screen.Height
Me.Left = Screen.Width - Me.Width - 50
NormalWindowStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
SetWindowLong Me.hwnd, GWL_EXSTYLE, NormalWindowStyle Or WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA
GradientForm Me
I = 100
End Sub
QUANTO A LARGURA....
Private Sub Form_Load()
Me.Width = Screen.Width [txt-color=#e80000] [ô]Aqui é a Largura da sua Tela, ajuste conforme queira[/txt-color]
Me.Show
Me.Top = Screen.Height
Me.Left = Screen.Width - Me.Width - 50
NormalWindowStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
SetWindowLong Me.hwnd, GWL_EXSTYLE, NormalWindowStyle Or WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA
GradientForm Me
I = 100
End Sub
Beleza
Não testei o code do colega VELDRAME.
Mas veja também este code, ele dá-lhe as dimensões da barra de tarefas e a sua posição. (também pode estar num dos lados ou em cima)
no meu caso:
TOP = 770
BOTTOM = 800
logo a altura da barra é 30 (800-770)
por exemplo se o form tem altura 100 o Form.Top terá que ser 670*15 (terá que multiplicar por 15, 1 pixel = 15 twips)
Também procure por [Ô]always on top[Ô] para ficar sempre visivel, encontra varios exemplos
té +
Não testei o code do colega VELDRAME.
Mas veja também este code, ele dá-lhe as dimensões da barra de tarefas e a sua posição. (também pode estar num dos lados ou em cima)
Private Declare Function SHAppBarMessage Lib [Ô]shell32.dll[Ô] (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Const ABM_GETTASKBARPOS = &H5
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End Type
Private Sub Command1_Click()
Dim abData As APPBARDATA
Dim lResult As Long
lResult = SHAppBarMessage(ABM_GETTASKBARPOS, abData)
LabTop = [Ô]Top= [Ô] & abData.rc.Top
LabBottom = [Ô]Bottom= [Ô] & abData.rc.Bottom
LabLeft = [Ô]Left= [Ô] & abData.rc.Left
LabRight = [Ô]Right= [Ô] & abData.rc.Right
MsgBox LabTop & [Ô] [Ô] & LabBottom & [Ô] [Ô] & LabLeft & [Ô] [Ô] & LabRight
End Sub
no meu caso:
TOP = 770
BOTTOM = 800
logo a altura da barra é 30 (800-770)
por exemplo se o form tem altura 100 o Form.Top terá que ser 670*15 (terá que multiplicar por 15, 1 pixel = 15 twips)
Também procure por [Ô]always on top[Ô] para ficar sempre visivel, encontra varios exemplos
té +
Obrigado Funcionou :)
Agora é só pontuar e encerrar o tópico.
Tópico encerrado , respostas não são mais permitidas