ABRIR FORMUL?RIO EM OUTRO MONITOR

MARCELODAVID 12/08/2014 23:29:27
#440383
Boa noite a todos!

Amigos gostaria de saber se há possibilidade de abrir um formulário em um segundo monitor?

Imaginemos o caso: Tenho um pc com uma placa de vídeo com duas saídas de vídeos, configuro essa placa
para estender o monitor. Daí no monitor 1 preciso que o [Ô]painel de controle[Ô] do meu aplicativo fique aberto, bem como todas as opções do Windows e no monitor 2,
apenas um formulário da minha aplicação fique aberto. Seria como no Power Point quando estendemos a ária de trabalho, em uma fica a estrutura
da apresentação e na outra apenas a apresentação.

Em pesquisa até que encontre para vb.net (que por sinal código muito simples) mas para vb6 não encontrei nada.

Alguma sugestão?

Desde já, grato!
TUNUSAT 13/08/2014 11:17:33
#440391
MARCELODAVID,

Fiquei imaginando aqui como seria...

Bom, primeiro seria interessante saber se o computador tem mesmo 2 monitores funcionado. (Seria outro código)
Se tiver acredito que basta colocar o valor de TOP, LEFT para fazer o formulário abrir na outra tela.

Exemplo (crie um módulo):

Sub main()
frmTeste.Top = 10
frmTeste.Left = 10
frmTeste.Show
End Sub


Mas ...

Veja também:
http://www.bigresource.com/VB-VB6-Size-and-Position-the-Window-of-Another-Application-Q1PALLWbLk.html

Posicionar o Windows:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx

Option Explicit
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST As Long = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_NOREDRAW = &H8

Public Declare Function SetWindowPos Lib [Ô]user32.dll[Ô] ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long

Sub main()
Call SetFormPosition(frmTeste.hWnd, HWND_NOTOPMOST)
End Sub

Public Sub SetFormPosition(ByVal hWnd As Long, ByVal Position As Long)
[ô]Call SetWindowPos(hWnd, Position, 0, 0, 0, 0, SWP_NOMOVE Or _
SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE)
Call SetWindowPos(hWnd, Position, 0, 0, 0, 0, _
SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE)
End Sub


[][ô]s,
Tunusat.
WEVERSON 13/08/2014 12:51:06
#440394
Resposta escolhida
MARCELODAVID,

Basta colocar no: Load

Me.Left = Screen.Width + (Me.Width) / 2
Me.WindowState = FormWindowState.Maximized

simples assim.....
MARCELODAVID 14/08/2014 12:29:13
#440442
Grato meus amigos, vou testar e reporto o que ocorreu.
Tópico encerrado , respostas não são mais permitidas