Récuperer les dimensions de l'ecran.

cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006 - 23 juin 2006 à 10:45
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006 - 23 juin 2006 à 12:10
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

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

 Drikce 06
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
23 juin 2006 à 11:43
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.
0
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006
23 juin 2006 à 12:10
Bonjour,
OK j'ai recupéré les dimensions mais maitenant je veux une affichage automatique de ma fenetre par ces dimensions.
0
Rejoignez-nous