Visual Basic.NET - Cambiar la resolucion de pantalla

 
Vista:

Cambiar la resolucion de pantalla

Publicado por Fernando (5 intervenciones) el 24/06/2011 07:42:25
Un saludo a todos antes que nada.
Bueno quiero pedirles a ver si alguno de ustedes tiene idea de como pudeo cambiar la resolucion de pantalla desde Visual Studio 2010
He buscado en google pero todo lo que encuentro es para Visual 6 y despues de romperme la cabeza durante horas con esos codigos tratando de hacerlos funcionar en visual 2010 he llegado a la conclusion de que no puedo hacerlo.
Si alguno tiene una idea de como se hace desde ya muchas gracias y sino tambien gracias a todos.
Y esta muy buena la pagina.
Ya la agregue a favoritos asi que me van a tener mas seguido por aca molestando con mis preguntas y si en algo puedo ayudar tambien lo hare.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cambiar la resolucion de pantalla

Publicado por Damian (824 intervenciones) el 24/06/2011 14:34:48
Hola, te aconsejo que escribas en el campo para buscar de este foro algo como, "resolucion de pantalla" (no hace falta las comillas) y así tendrás varias entradas sobre el tema.
Hay uno que te puede interesar, el hilo es: http://www.lawebdelprogramador.com/foros/Visual_Basic.NET/1016809-Adaptar_aplicaion_a_distintas_resoluciones.html

Saludos y espero te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Cambiar la resolucion de pantalla

Publicado por Fernando (5 intervenciones) el 25/06/2011 03:54:46
Gracias eso ya lo habia leido pero no es lo que busco. Yo no quiero cambiar el tamaño de mis formularios. Yo quiero cambiar la resolucion de la pantalla para que se adapte a mis formularios.
Te voy a explicar el por que: Estoy creando un software de POS. Para utilizar por ejemplo en una pizzeria para las ventas. Y la idea es vender el paquete completo, el softare junto con las pc y las pantallas tactiles. Lo que yo quiero evitar con esto es que las personas que vayan a utilizarlo cambien la resolucion de pantalla y con eso no se vean botones o tenga que utilizar un scroll. Esto es mas que nada porque el programa no lo van a utilizar personas con conocimientos de computacion de un nivel medio o alto, mas que nada lo van a utilizar personas que no saben nada de computacion.
Igualmente agradesco tu colaboracion y te mando un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambiar la resolucion de pantalla

Publicado por Joan B (129 intervenciones) el 26/06/2011 11:17:32
Hola, para cambiar la resolucion se han de usar llamadas a las APIs de windos, pero se puede hacer con Visual 2010. Yo uso el sigioente codigo. Te creas un mòdilo con las llamadas a las APIS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Imports System.Runtime.InteropServices
 
Module ControlResolucion
 
    Private Declare Auto Function EnumDisplaySettings Lib "user32.dll" ( _
        <MarshalAs(UnmanagedType.LPTStr)> ByVal lpszDeviceName As String, _
        ByVal iModeNum As Int32, _
        ByRef lpDevMode As DEVMODE _
    ) As Boolean
 
    Private Declare Auto Function ChangeDisplaySettings Lib "user32.dll" ( _
        ByRef lpDevMode As DEVMODE, _
        ByVal dwFlags As Int32 _
    ) As Int32
 
    Private Const DM_BITSPERPEL As Int32 = &H40000
    Private Const DM_PELSWIDTH As Int32 = &H80000
    Private Const DM_PELSHEIGHT As Int32 = &H100000
 
    Private Const DISP_CHANGE_SUCCESSFUL As Int32 = 0
 
    <StructLayout(LayoutKind.Sequential)> _
    Private Structure POINTL
        Public x As Int32
        Public y As Int32
    End Structure
 
    <StructLayout(LayoutKind.Explicit)> _
    Private Structure DEVMODE_union1
        ' struct {
        <FieldOffset(0)> Public dmOrientation As Int16
        <FieldOffset(2)> Public dmPaperSize As Int16
        <FieldOffset(4)> Public dmPaperLength As Int16
        <FieldOffset(6)> Public dmPaperWidth As Int16
        ' }
        <FieldOffset(0)> Public dmPosition As POINTL
    End Structure
 
    <StructLayout(LayoutKind.Explicit)> _
    Private Structure DEVMODE_union2
        <FieldOffset(0)> Public dmDisplayFlags As Int32
        <FieldOffset(0)> Public dmNup As Int32
    End Structure
 
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
    Private Structure DEVMODE
        Private Const CCDEVICENAME As Int32 = 32
        Private Const CCFORMNAME As Int32 = 32
 
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCDEVICENAME)> _
        Public dmDeviceName As String
        Public dmSpecVersion As Int16
        Public dmDriverVersion As Int16
        Public dmSize As Int16
        Public dmDriverExtra As Int16
        Public dmFields As Int32
        Public u1 As DEVMODE_union1
        Public dmScale As Int16
        Public dmCopies As Int16
        Public dmDefaultSource As Int16
        Public dmPrintQuality As Int16
        Public dmColor As Int16
        Public dmDuplex As Int16
        Public dmYResolution As Int16
        Public dmTTOption As Int16
        Public dmCollate As Int16
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCFORMNAME)> _
        Public dmFormName As String
        Public dmUnusedPadding As Int16
        Public dmBitsPerPel As Int16
        Public dmPelsWidth As Int32
        Public dmPelsHeight As Int32
        Public u2 As DEVMODE_union2
        Public dmDisplayFrequency As Int32
        Public dmICMMethod As Int32
        Public dmICMIntent As Int32
        Public dmMediaType As Int32
        Public dmDitherType As Int32
        Public dmReserved1 As Int32
        Public dmReserved2 As Int32
        Public dmPanningWidth As Int32
        Public dmPanningHeight As Int32
    End Structure
 
    Public Function SetResolution( _
        ByVal Width As Int32, _
        ByVal Height As Int32, _
        ByVal BitsPerPixel As Int16 _
    ) As Boolean
        Dim dm As DEVMODE
        If Not EnumDisplaySettings(Nothing, 0, dm) Then
            Return False
        Else
            With dm
                .dmFields = _
                    DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
                .dmPelsWidth = Width
                .dmPelsHeight = Height
                .dmBitsPerPel = BitsPerPixel
            End With
            Return (ChangeDisplaySettings(dm, 0) = DISP_CHANGE_SUCCESSFUL)
        End If
    End Function
 
 
End Module


Y para realizar el cambió de resolucion solo has de llamar a la función SetResolution con la resolucion que quieras, como:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub btnSize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles  btnSizeBig.Click, btnSizeNormal.Click, btnSizeSmall.Click
 
        Select Case CType(sender, Button).Name
            Case "btnSizeBig"
                SetResolution(800, 600, 32)
            Case "btnSizeNormal"
                SetResolution(1024, 768, 32)
            Case "btnSizeSmall"
                SetResolution(1280, 1024, 32)
        End Select
 
    End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cambiar la resolucion de pantalla

Publicado por Fernando (5 intervenciones) el 27/06/2011 03:06:56
Muchisimas gracias funciona perfecto.
Y gracias a todos los que colaboraron con alguna otra idea
Saludos a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Jose (1 intervención) el 07/04/2014 05:08:15
Gracias Muy Buen Codigo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar la resolucion de pantalla

Publicado por Hectorb (1 intervención) el 08/03/2015 19:08:51
Solo copio y pego el codigo o tengo que hacerle algun cambio?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar la resolucion de pantalla

Publicado por Jose R. Hernandez D. (1 intervención) el 06/10/2016 02:18:31
Amigo Joan B , tengo que darle las gracias , por su respuesta. Tenia la necesidad de incorporar esta solucion y con lo que Ud. respondio lo hice rapido y facil. Agradecido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar la resolucion de pantalla

Publicado por Gustavo Curt (1 intervención) el 04/08/2017 03:34:22
Joan, funciona excelente, buena... hace mucho que necesitaba una rutina como esta...felicitaciones y muchas gracias... Gus
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambiar la resolucion de pantalla

Publicado por JAVIER (15 intervenciones) el 01/05/2023 11:07:21
Me parece una solución magnífica que estaba buscando
Lo que no se es desde donde llamar a la función para que la aplicación me arranque con la nueva resolución de pantalla
Muchas gracias a todos. Magnífico foro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar