TELA DE FUNDO
Pessoal, coloquei uma picture no form mdi, e o logotipo fica posicionado, Ã direita e abaixo no form, no meu micro ficou legal, testei em 2 micros de um cliente, e em um deles com config igual ao meu, ficou boa, ja em outro com config de 1024 x 768, come metade da imagem...como vcs fazem esse ajuste ?
Mostra um print para ver oque e
Veja se isso te ajuda.
F001E, o [Ô]veadinho[Ô] parece acompanhar o movimento da tela, mas não entendi a lógica, estou pensando em deixar o logo, a esquerda e acima perto da toolbar, assim vai aparecer em qualquer resolução..Não fica com visual bom igual posicionando a direita e abaixo (acima da statusbar), mas..........
eu vi um sistema, que conforme muda a resolução do windows, (800x600 - 1024x768, etc) a tela de fundo do form principal, se ajusta à nova configuração, ficando maior ou maior, e não corta a imagem, no meu caso, coloquei uma picture no form mdi como imagem de fundo, mas se alguém tiver uma dica, agradeço.
Futura,
Estava olhando na internet e achei isto:
http://www.scriptbrasil.com.br/forum/topic/139107-resolvido-centralizar-uma-imagem-em-um-form-mdi/
Parece que o camarada não colocou a imagem direto dentro do MDI, mas fez isto via código ajustando-a de acordo om a resolução encontrada no ambiente que irá rodar o programa.
[Ô]... mas primeiro cloquei uma picture depois uma image e dentro da image coloquei a imagem que eu queria e coloquei este código... [Ô]
[][ô]s,
Tunusat.
Estava olhando na internet e achei isto:
http://www.scriptbrasil.com.br/forum/topic/139107-resolvido-centralizar-uma-imagem-em-um-form-mdi/
Parece que o camarada não colocou a imagem direto dentro do MDI, mas fez isto via código ajustando-a de acordo om a resolução encontrada no ambiente que irá rodar o programa.
[Ô]... mas primeiro cloquei uma picture depois uma image e dentro da image coloquei a imagem que eu queria e coloquei este código... [Ô]
Dim mode As Integer
Private Sub MDIForm_DblClick()
mode = mode + 1
If mode > 2 Then
MDIForm_Resize
End If
End Sub
Private Sub MDIForm_Load()
Picture1.Visible = False
Picture1.BackColor = Me.BackColor
MDIForm_Resize
End Sub
Private Sub MDIForm_Resize()
Picture1.AutoRedraw = True
Picture1.Cls
Picture1.Height = Me.ScaleHeight + Picture1.Height - Picture1.ScaleHeight
Select Case mode
Case 0 [ô]centered
Picture1.PaintPicture Image1.Picture, (Me.ScaleWidth - Image1.Width) / 2, (Me.ScaleHeight - Image1.Height) / 2
Case 1 [ô]stretched
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
Case 2 [ô]tiled
Dim i As Integer, j As Integer
For i = 0 To Screen.Height Step Image1.Height
For j = 0 To Screen.Width Step Image1.Width
Picture1.PaintPicture Image1, j, i, Image1.Width, Image1.Height
Next
Next
End Select
Me.Picture = Picture1.Image
Picture1.AutoRedraw = False
End Sub
[][ô]s,
Tunusat.
Veja agora.....[Ô]sem veado[Ô]....
F001E, o problema era o [Ô]VEADO[Ô], rs.. valeu.
Reabri o tópico, apareceu um problema ao minimizar o form, da erro nesta linha:
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
Coloquei dentro de um if como abaixo:
If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If
Resolveu o erro, mas quando restaura perde a imagem do fundo, fica [Ô]vazio[Ô]... bloquiei o minimizar no form, mas se usar a função para visualizar area de trabalho do windows, quando restaura o sistema, também volta sem o fundo, alguma dica ?
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
Coloquei dentro de um if como abaixo:
If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If
Resolveu o erro, mas quando restaura perde a imagem do fundo, fica [Ô]vazio[Ô]... bloquiei o minimizar no form, mas se usar a função para visualizar area de trabalho do windows, quando restaura o sistema, também volta sem o fundo, alguma dica ?
acho que resolvi, coloquei o bloco de comando do resize, pra executar somente de estado do form (windowstate) for diferente de 1, vou deixar aberto o tópico até finalizar os testes.
Private Sub MDIForm_Resize()
mode = 1
Picture1.AutoRedraw = True
If MDIForm1.WindowState <> vbMinimized Then
Picture1.Cls
Picture1.Height = Me.ScaleHeight + Picture1.Height - Picture1.ScaleHeight
Select Case mode
Case 0 [ô]centered
Picture1.PaintPicture Image1.Picture, (Me.ScaleWidth - Image1.Width) / 2, (Me.ScaleHeight - Image1.Height) / 2
Case 1 [ô]stretched
If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If
Case 2 [ô]tiled
Dim i As Integer, j As Integer
For i = 0 To Screen.Height Step Image1.Height
For j = 0 To Screen.Width Step Image1.Width
Picture1.PaintPicture Image1, j, i, Image1.Width, Image1.Height
Next
Next
End Select
Me.Picture = Picture1.Image
End If
Picture1.AutoRedraw = False
End Sub
mode = 1
Picture1.AutoRedraw = True
If MDIForm1.WindowState <> vbMinimized Then
Picture1.Cls
Picture1.Height = Me.ScaleHeight + Picture1.Height - Picture1.ScaleHeight
Select Case mode
Case 0 [ô]centered
Picture1.PaintPicture Image1.Picture, (Me.ScaleWidth - Image1.Width) / 2, (Me.ScaleHeight - Image1.Height) / 2
Case 1 [ô]stretched
If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If
Case 2 [ô]tiled
Dim i As Integer, j As Integer
For i = 0 To Screen.Height Step Image1.Height
For j = 0 To Screen.Width Step Image1.Width
Picture1.PaintPicture Image1, j, i, Image1.Width, Image1.Height
Next
Next
End Select
Me.Picture = Picture1.Image
End If
Picture1.AutoRedraw = False
End Sub
Tópico encerrado , respostas não são mais permitidas