Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : adapter userform en fct de l'ecran [ Langages dérivés / VBA ] (matth72)

jeudi 10 juillet 2008 à 09:57:48 | adapter userform en fct de l'ecran

matth72

Bonjour à tous j’ai créé une interface pour mon boulot sur mon pc sa fonctionne très bien mais je suis amené à donner ma programmation à plusieurs personnes de l’entreprise mais ces personnes n’on pas forcément la même résolution d’écran. Je dois donc adapter ma form en fonction de celui-ci
J’ai un début de programme qui marche mais mon pb c’est que je n’arrive pas à repositionner mes contrôles (ex : commandbutton1.top reste à la meme place) sa ne fonctionne pas
Si quelqu’un a compris et peut m’aide
Merci d’avance

Private Sub UserForm_Initialize()
'UserForm en plein écran
Me.Width = ScreenWidth * PointsPerPixel
Me.Height = ScreenHeight * PointsPerPixel
'Déclaration des variables RX et RH
Dim RW As Single, RH As Single 'RMW As Single, RMH As Single
'Calcule le rapport de l'UserForm et la taille de l'écran
RW = ScreenWidth * PointsPerPixel / Me.Width
RH = ScreenHeight * PointsPerPixel / Me.Height
'Met l'UserForm en plein écran
Me.Width = ScreenWidth * PointsPerPixel
Me.Height = ScreenHeight * PointsPerPixel
'Déclaration de la variable Ctl qui correspond aux contrôles de ton UserForm
Dim Ctl As MSForms.Control
'Permet de redimensionner tous tes contrôles présent sur l'UserForm en fonction de la taille de l'userForm et de la taille de l'écran
For Each Ctl In Me.Controls
Ctl.Move Ctl.Left * RW, Ctl.Top * RH, Ctl.Width * RW, Ctl.Height * RH
Next

‘Suite programme…
End Sub

Dans un module
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0 'Screen width
Private Const SM_CYSCREEN = 1 'Screen height
Private Declare Function GetDC Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hWnd As Long, ByVal hDC As Long) As Long

Private Const LOGPIXELSX = 88 'Pixels/inch in X
'A point is defined as 1/72 inches
Private Const POINTS_PER_INCH As Long = 72

'la largeur de l'ecran, en pixels
Public Function ScreenWidth() As Long
ScreenWidth = GetSystemMetrics(SM_CXSCREEN)
Debug.Print ScreenWidth
End Function

'la hauteur de l'ecran, en pixels
Public Function ScreenHeight() As Long
ScreenHeight = GetSystemMetrics(SM_CYSCREEN)
Debug.Print ScreenHeight
End Function

'The size of a pixel, in points
Public Function PointsPerPixel() As Double
Dim hDC As Long
Dim lDotsPerInch As Long
hDC = GetDC(0)
Debug.Print hDC
lDotsPerInch = GetDeviceCaps(hDC, LOGPIXELSX)
Debug.Print lDotsPerInch
Debug.Print POINTS_PER_INCH
PointsPerPixel = POINTS_PER_INCH / lDotsPerInch
Debug.Print PointsPerPixel
ReleaseDC 0, hDC
End Function



Cette discussion est classé dans : long, function, private, userform, pointsperpixel


Répondre à ce message

Sujets en rapport avec ce message

voivi un script pour désactiver le bouton fermer d'access [ par antipateik ] j'ai récupéré ce script sur le super site de http://access.seneque.free.fr/Mon pb c'est que j'y pige pas grand chose set que j'aimerai savoir comment quelqun peut maider pour faire marcher ce code [ par wcwmans ] ccest un code pour empecher que les fenetre contennat dans leur titre le mots sex ne souvre pas. Il est composé d'un timer d'une form et d'un module.m EnumWindow... [ par Franck67 ] Bonjour,J'aimerai pouvoir récupérer uniquement le Handle des fenêtres affichées sur le bureau de Windows pour pouvoir faire un traitement dessus !!!J' texte veticalement mais ! [ par hindhinf ] j'ai essayer le code suivant pour ecrire un texte verticalement :Private Declare Function GetDeviceCaps Lib "GDI32" (ByVal hdc As Long, ByVal nIndex A case system [ par JLB59 ] Bonjour,Par des API et grâce à NIX,Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Decl Fermer un programme (shell) [ par Mr Capone ] Bonjour voila je souhaite enchainer des video pour cela je les ouvre avec un shell. Je me suis aidé d'un code deja présent sur vbfrance.fr qui m'aide Prob dans le listage des fentres actives [ par CCJ ] Voila le code :Private Declare Function GetWindowTextLength Lib "USER32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As LongPrivate Declare Func difficulté de conversion vb6 vers vb.net [ par Safireo ] Bonjour tlm !après de longues recherche, j'ai réussi à trouver un petit bout de code sensé me permettre de récupérer le nom de fichier que winamp lit Problème avec les Threads et la fonction Creaobject [ par skirby ] Bonjour à tous, Voila, j'ai un gros problème avec les Thread sous VB 6. Plus précisément, c'est la fonction CreateObject dans la fonction de mon thre conversion en .NET [ par Safireo ] slut tlm !je cherche à terminer la conversion de ce code en .net.j'arrive à éliminer les erreurs mais pas à faire fonctionner le logiciel qui doit me


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,076 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.