Récuperer les dimensions de l'ecran.

Signaler
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006
-
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006
-
Bonjour,
j'ai un petit probleme c'est que l'execution de mon programme VB.6 me donne une male affichage càd une fenetre avec les deux ascenceures à droite et en bas. donc je veux une affichage qui récupère les dimensions de l'ecran. je l'essai par ce module mais je sais pas comment faire l'appel de ses fonctions.

Option Explicit

    Public XTwips As Long
    Public YTwips As Long
    Public XPixels As Long
    Public YPixels As Long

Public Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean



Public Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long




Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000




Public Type DEVMODE
    dmDeviceName As String * CCDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer




    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer




    dmFormName As String * CCFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
End Type

Dim DevM As DEVMODE

Public Sub GetStart()
    Dim a As Boolean
    Dim i&
    i = 0
    Do
        a = EnumDisplaySettings(0&, i&, DevM)
        i = i + 1
    Loop Until (a = False)
End Sub
Public Sub SetScreen(ByVal V_Width, ByVal V_Height)
    Dim b&
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT




    DevM.dmPelsWidth = V_Width
    DevM.dmPelsHeight = V_Height




    b = ChangeDisplaySettings(DevM, 0)
End Sub

Public Sub GetScreen()




    XTwips = Screen.TwipsPerPixelX
    YTwips = Screen.TwipsPerPixelY




    XPixels = Screen.Width / XTwips
    YPixels = Screen.Height / YTwips




End Sub

3 réponses

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
salut
va voir ca ca peut peut-etre t'aider
http://vb.developpez.com/faq/?page=Systeme#resolution

 Drikce 06
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Salut,

Tu appelles la procédure GetScreen(), et tu regardes ce qu'elle a renvoyé dans les variables XTwips, YTwips, ou bien XPixels et YPixels, suivant ce que tu veux.
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Bonjour,
OK j'ai recupéré les dimensions mais maitenant je veux une affichage automatique de ma fenetre par ces dimensions.