2 MONITORES.

MACYSZYN 04/06/2012 15:11:02
#403470
Ola pessoal, tenho 2 monitores, e quero abrir o programa no segundo monitor.
Se eu abrir o programa no monitor 1, e puxar para o monitor 2, ele permanece no 2, mas quando é chamado um novo form
ele abre no monitor 1, ficando no monitor 2, só o [Ô]Menu[Ô].
Quero saber se alguém já teve esse problema?

Tenho um menu, e esse menu chama outros formulário da seguinte forma: Form2.Show 1

Desde já, obrigado a todos.
AJSO 04/06/2012 16:29:29
#403477
Caro MACYSZYN

Como fez sua configuração de Screen.AllScreens para abrir seus forms monitor 1 e monitor 2


Boa sorte
MACYSZYN 04/06/2012 16:40:14
#403480
Monitor 1:Resolução 1024 x 768
Qualidade da cor: 32 Bit
Estender área de trabalho: marcado

Monitor 2:Resolução 1024 x 768
Qualidade da cor: 32 Bit
Estender área de trabalho: marcado
KERPLUNK 04/06/2012 17:08:35
#403481
Resposta escolhida
O VB6, não possui um modo nativo de seleção de saída de vídeo, isso teria que ser feito via API. Por padrão, a saída de vídeo utilizada é a primária.
MACYSZYN 04/06/2012 18:19:11
#403488
KERPLUNK, é o que eu imaginei.

Eu sei abrir o form no segundo monitor, mas oque eu quero, e que o usuário escolha o monitor que quer trabalhar,
da mesma forma que nós podemos fazer com um navegador, ou outro programa qualquer.

Quero saber se isso é possível?
MACYSZYN 04/06/2012 18:23:01
#403490
Ha forma que encontrei de abrir o formulário no segundo monitor é o seguinte.
No Formulário que esta sendo aberto

Private Sub Form_Load()
Me.Left = (Screen.Height + (Screen.Height / 2))
End Sub

Só que, dessa forma, o formulário sempre sera aberto no segundo monitor, não dando opção ao usuário, de escolhe o monitor que quer trabalhar.
MARCELO.TREZE 04/06/2012 22:48:26
#403500
bom você descobriu como abrir, então quando você cria uma tela estendida, o que você pode fazer é o seguinte

dentro de 1024 é o monitor 1 acima disto é o monitor, convertendo pixels em twips

1 pixel possui 567 twips

então qualquer valor acima de 1024 * 567 ja é o monitor dois

então

me.left < (1024 * 567) = monitor 1
me.left >(1024 * 567) = monitor 2

é isso

GANDA.NICK 05/06/2012 01:04:39
#403508
Citação:

1 pixel possui 567 twips



tá viajando heim Marcelo ?!?!??!

1 pixel = 15 twips


Outra coisa é se o ecrã expandido estiver do lado esquerdo do principal (não só fisicamente, claro) o valor X dos pixel[ô]s ou twips dele será negativo.


Citação:

Private Sub Form_Load()
Me.Left = (Screen.Height + (Screen.Height / 2))
End Sub




Height é altura, não irá ser por isso que o form irá abrir num ou noutro monitor...


dê uma olhado neste exemplo anexado que lhe mostra qual a resolução de cada ecrã e em que ecrã se encontra o form.... penso que lhe ira ser util.....

esper ter ajudado
té +
MARCELO.TREZE 05/06/2012 01:26:11
#403509
Citação:

tá viajando heim Marcelo ?!?!??!



acho que eu estava, mas acontece sou humano, então erro.

então me corrigindo

1 pixel = 15 twips
1 cm = 567 twips

acontece
GANDA.NICK 05/06/2012 03:25:50
#403510
Citação:

acho que eu estava, mas acontece sou humano, então erro.



tranquilo...



Private Sub Form_Load()
Me.Left = (Screen.Height + (Screen.Height / 2))
End Sub
Citação:

Height é altura, não irá ser por isso que o form irá abrir num ou noutro monitor...



me expressei mal... tendo em conta que sua resolução é 1024 x 768, vc tá fazendo:

Me.Left = 1152


isto em pixels...

Logo irá aparecer no 2º ecrã....


vc quer abrir um novo form nesse mesmo ecrã onde se encontra o menu ??? se sim, grave o valor do LEFT do FrmMenu numa variavel publica quando chamar o Form2.show... depois no load do form2 meta o valor que guardou na variavel no Form2.left.... declare a variavel com long
MACYSZYN 05/06/2012 11:48:43
#403550
Muito obrigado a todos, infelizmente trabalha isso no projeto não fica muito bom,
Porque pode haver um terceiro monitor,
e mesmo que haja 2 monitores, se eu usar
Me.Left = (Screen.Width + (Screen.Width/ 2))
Não vai funcionar se os monitores estiverem invertidos, ou seja:


Uploaded with ImageShack.us
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas