Changement de dimension sur un pc a deux ecran

Changement de dimension sur un pc a deux ecran - VB/VBA/VBS - Programmation

Marsh Posté le 13-08-2003 à 10:47:25    

Salut, j'ai un probléme interessant.
 
j'ai une application avec une seule fenetre de dimension 300*300 on va dire. quand je la lance, apparait une fenetre de dimension 300*300. Normal me dirais vous  
 
Bon, sur un pc qui utilise deux écran (donc une carte qui gere deux ecran), si le mode 'ouverture de fenetre au maximum sur un écran' est activée, quand l'utilisateur lance l'appli, la fenetre apparait toute petite genre 50*50 Argggggggggggggggggggggggggggggggg  
 
vous pouvez m'aider, car je coince là  ?
 
note : dans le code, la taille de la fenetre est fixé au niveau de ces propritétes, donc, c pas un pb d'algo ou autre...
 
Mouff


---------------
Il suffit de me dire de me taire...
Reply

Marsh Posté le 13-08-2003 à 10:47:25   

Reply

Marsh Posté le 16-08-2003 à 10:14:00    

Ton copain n'as pas la même résolution que toi, c'est aussi simple que ça ! Du coup, ton application est réduite d'autant. Si sa résolution était inférieur à la tienne, la fenêtre se serait agrandie d'autant !
 
Effectivement c'est bien dans l'algorithme que sa se joue, il te faut redimensionner la fenêtre en fonction de la résolution d'écran de chaque utilisateurs. Il te faut utiliser les API windows pour détecter la résolution d'écran : http://docvb.free.fr/api.php tu l'as sur ce site.  
 
exemple de ton code, que tu mettras dans un module.  
 

Code :
  1. option explcit
  2. --> déclare ici ton API en public
  3. public hauteur, largeur
  4. public function detection_resolution
  5. dim hauteur_ecran,largeur_ecran
  6. dim resolution_hauteur , resolution_largeur
  7. |
  8. |
  9. |tu mets le code de l'API pour détecter
  10. |
  11. |
  12. end function


 
 
Tu renvoie les valeur trouvé dans des variables "resolution_hauteur" &  "resolution_largeur" et tu mets le petit morceau qui suit de code dans la partie précédente aprés avoir détecté la résolution.
 

Code :
  1. hauteur_ecran = screen.height
  2. largeur_ecran = screen.width


 
Avec les valeurs que tu auras dans "hauteur_ecran" et dans "largeur_ecran" tu va les diviser avec la résolution que tu auras obtenue. Toujours pareille, tu mets le code à la suite, du premier bout de code...
 

Code :
  1. hauteur =  resolution_hauteur / hauteur_écran
  2. largeur =  resolution_largeur / largeur_ecran


 
c'est peut-être "hauteur_écran/resolution_hauteur", je ne m'en souviens plus. A cette étape là, t'as obtenue les coéficients mutliplicateurs. Dans ton code (dans l'évènement LOAD), tu multiplies, avec ses coéficients les objets de ta fenêtre ainsi que ta feuille...avant qu'elle n'apparaissent à l'écran de l'utilisateur.
 
 
exemple simple:
 
 

Code :
  1. command1.height =  command1.height *  hauteur
  2. command1.top = command1.top * hauteur
  3. command1.width = command1.width * largeur


 
il en manque une qu'il faut mutlitplier par la largeur, tu la trouveras. Voilà en gros ce qu'il faut faire. je sais que le coup des variables public c'est pas du code tes propre, mais j'ai fais au plus vite...
 
 
Pour résumé :
 
 

Code :
  1. option explcit
  2. --> déclare ici ton API en public
  3. public hauteur, largeur
  4. public function detection_resolution
  5. dim hauteur_ecran,largeur_ecran
  6. dim resolution_hauteur , resolution_largeur
  7. |
  8. |
  9. |tu mets le code de l'API pour détecter
  10. |
  11. |
  12. |
  13. |
  14. |
  15. hauteur_ecran = screen.height
  16. largeur_ecran = screen.width
  17. hauteur =  resolution_hauteur / hauteur_écran
  18. largeur =  resolution_largeur / largeur_ecran
  19. end function


 
Dans ta feuille :
 

Code :
  1. form1_load
  2. command1.height =  command1.height *  hauteur
  3. command1.top = command1.top * hauteur
  4. command1.width = command1.width * largeur
  5. ect...


 
En espéèrant avoir été clair !  :jap:


Message édité par cvb le 16-08-2003 à 11:03:12
Reply

Marsh Posté le 16-08-2003 à 10:18:35    

merci l'ami je regarde ça lundi ;)


---------------
Il suffit de me dire de me taire...
Reply

Marsh Posté le 16-08-2003 à 10:37:13    

de rien !  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed