ejecutar en pantalla completa

Iniciado por neo-tokyo, 27 Septiembre 2007, 21:27 PM

0 Miembros y 1 Visitante están viendo este tema.

neo-tokyo

me gustaria saber como podria con vb ejecutar una aplicación a pantalla completa, tal y como se ejecutan los juegos o ciertos programas y presentaciones

Gracias

Xerok1!

si te refieres a esto:
Me.WindowState = 2

sino especifica :P

un saludo ;) ;)
[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]

neo-tokyo

no maximizado no, que la ventana pierda los bordes (o que tenga que crear la pantalla sin bordes) y ocupe la pantalla, sin posibilidad de salir  con el raton al escritorio hasta acabar la aplicación

Xerok1!

ahhhhhh ok ok pues en las propiedaades del form pones borderstyle "none"

y si kieres q no se poda salir este codigo:

Option Explicit



Private Declare Function SetWindowPos Lib "User32" (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
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE




















Const valorDock As String = "enPicDock"
Private Declare Function SetParent Lib "User32" _
    (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Enum eShowWindow
    HIDE_eSW = 0&
    SHOWNORMAL_eSW = 1&
    NORMAL_eSW = 1&
    SHOWMINIMIZED_eSW = 2&
    SHOWMAXIMIZED_eSW = 3&
    MAXIMIZE_eSW = 3&
    SHOWNOACTIVATE_eSW = 4&
    SHOW_eSW = 5&
    MINIMIZE_eSW = 6&
    SHOWMINNOACTIVE_eSW = 7&
    SHOWNA_eSW = 8&
    RESTORE_eSW = 9&
    SHOWDEFAULT_eSW = 10&
    MAX_eSW = 10&
End Enum

Private Declare Function ShowWindow Lib "User32" _
    (ByVal hwnd As Long, ByVal nCmdShow As eShowWindow) As Long
Private Declare Function MoveWindow Lib "User32" _
    (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Type POINTAPI
    X As Long
    Y As Long
End Type
Private Type RECTAPI
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type WINDOWPLACEMENT
    Length As Long
    Flags As Long
    ShowCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECTAPI
End Type
Private Declare Function GetWindowPlacement Lib "User32" _
    (ByVal hwnd As Long, ByRef lpwndpl As WINDOWPLACEMENT) As Long
   
   
   
   
   
    Private Sub MiFuncionDeAjuste(Formulario As Form, Estado As Boolean)
Dim retorno As Long
If Estado = True Then
retorno = SetWindowPos(Formulario.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_FLAGS)
Else
retorno = SetWindowPos(Formulario.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_FLAGS)
End If
End Sub
   
   
   
   
   
   
   
   

Private Sub dockForm(ByVal formhWnd As Long, _
                     ByVal picDock As PictureBox, _
                     Optional ByVal ajustar As Boolean = True)
    Call SetParent(formhWnd, picDock.hwnd)
    posDockForm formhWnd, picDock, ajustar
    Call ShowWindow(formhWnd, NORMAL_eSW)
End Sub

Private Sub posDockForm(ByVal formhWnd As Long, _
                        ByVal picDock As PictureBox, _
                        Optional ByVal ajustar As Boolean = True)
    Dim nWidth As Long, nHeight As Long
    Dim wndPl As WINDOWPLACEMENT
    '
    If ajustar Then
        nWidth = picDock.ScaleWidth \ Screen.TwipsPerPixelX
        nHeight = picDock.ScaleHeight \ Screen.TwipsPerPixelY
    Else
        Call GetWindowPlacement(formhWnd, wndPl)
        With wndPl.rcNormalPosition
            nWidth = .Right - .Left
            nHeight = .Bottom - .Top
        End With
    End If
    Call MoveWindow(formhWnd, 0, 0, nWidth, nHeight, True)
End Sub


Private Sub Form_Load()

End Sub

Private Sub Timer2_Timer()
MiFuncionDeAjuste Me, True
End Sub


y listo,asi no se puede salir asta que alguna orden q le des se produzca(unload por ejemplo)

creo q esto ya si es lo que kieres :P :P
un saludo :)
[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]

Freeze.

Hay por favor para eso haz esto:

Código (vb) [Seleccionar]

Me.windowstate = 2
Me.BorderStyle = 0

neo-tokyo

#5
pero la cosa es que queria adaptar la pantalla a la ventana, si es 800x600 da igual la resolucion da pantalla que se podra a 800x600

he visto la funcion que quiero en openGL y hace exactamente lo que quiero pero nose como ejecutar openGL con vb, he buscao por ahí y creo que se puede hacer pero no he encontrao como utilizar openGL desde vb, la cosa es que pensaba que se podria hacer facilmente desde vb ya que es algo parecido a cuando ejecutas msdos a pantalla completa o cualquier juego tambien lo hace

Saludos

Ferсhu

#6
No se puede hacer el tipico Full screen de los jueguitos. Lo unico q podes hacer es q la ventana de tu aplicacion ocupe toda la pantalla, y determinar primero la resolucion de la pantalla, luego asignarle el tamaño y lo q te dijeron los demas.

Si keres usar OpenGL, Usa c++.

neo-tokyo

OK, pues gracias por vuestras respuestas
Solo querria openGL para esa función así que preferiré optar por vb y que mi aplicación no tenga la presentacioón que yo queria

Un saludo

Sancho.Mazorka

No es necesario irse a C++, openGL tambien esta para VB6, yo tenia varias DLL pero cuando formatee las perdi, DirectX y openGL los maneja VB6


Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



neo-tokyo

pues eso seria interesante, e incluso en la aplicación en sí podria utilizar otras funciones de openGL ya que esta solo he empezado a crearlo
Si recuerdas los nombres o algun sitio por donde podria buscar