begin process at 2012 02 10 00:27:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > DIMENSION DE L'INTÉRIEUR D'UNE FENÊTRE - RÉGLER LA TAILLE D'UNE FENÊTRE EN FONCTION DE L'ESPACE RÉELLEMENT UTILISABLE PAR LES CONTRÔLES

DIMENSION DE L'INTÉRIEUR D'UNE FENÊTRE - RÉGLER LA TAILLE D'UNE FENÊTRE EN FONCTION DE L'ESPACE RÉELLEMENT UTILISABLE PAR LES CONTRÔLES


 Information sur la source

Note :
Aucune note
Catégorie :Formulaire Classé sous :dimensions, taille, intérieur, fenêtre, bordures Niveau :Débutant Date de création :20/03/2006 Date de mise à jour :20/03/2006 14:53:13 Vu / téléchargé :16 671 / 671

Auteur : _120_

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Pour ceux qui n'ont jamais rencontré ce problème, essayez de mettre une petite image en haut à gauche de votre form, et faites me.height=image1.height et me.width=image1.width : vous verrez que les bordures de la fenêtre ne se superposeront pas exactement aux bordures de votre image car me.height et me.width ne renvoient pas les dimensions de l'intérieur de la fenêtre mais de l'extérieur de la fenêtre (incluant barre de titre et bordures).

Le but de ma source est le suivant : J'ai vu récemment plusieurs codes qui permettent d'ajuster une fenêtre à un contrôle en contournant ce problème de la taille des bordures (bordures de quelques pixels sur les cotés et le bas, et barre de titre en haut). Or, ces sources utilisent des API ou diverses fonctions plus ou moins complexes.

Mais moi, depuis toujours, j'utilise une petite procedure toute simple pour redimensionner une form à la dimension intérieure voulue, donc, devant ces sources plus complexes, je me pose la question suivante : Est-ce que ma façon de faire est "propre" ???
Si non, quel est l'intérêt d'utiliser des API plutôt que cette méthode ???
Si oui, voilà pour ceux qui le cherchaient une façon plus simple de le faire  :)

Source

  • Private Sub Ajuster_Click()
  • Set_Int_Dims Me, Image1.Width, Image1.Height
  • End Sub
  • Private Sub Set_Int_Dims(F As Form, Width As Integer, Height As Integer)
  • Dim BordureX As Integer
  • Dim BordureY As Integer
  • If F.WindowState = vbNormal Then 'si la fenetre n'est pas maximisée ou minimisée
  • 'en faisant la différence entre les dimensions extérieures et intérieures
  • 'de la form, j'obtiens la taille des bordures entourant ma form
  • BordureX = F.Width - F.ScaleWidth
  • BordureY = F.Height - F.ScaleHeight
  • 'la taille extérieure de ma form doit donc etre égale à la dimension intérieure
  • 'choisie + les bordures
  • F.Width = Width + BordureX
  • F.Height = Height + BordureY
  • End If
  • End Sub
Private Sub Ajuster_Click()

Set_Int_Dims Me, Image1.Width, Image1.Height

End Sub



Private Sub Set_Int_Dims(F As Form, Width As Integer, Height As Integer)

Dim BordureX As Integer
Dim BordureY As Integer

If F.WindowState = vbNormal Then 'si la fenetre n'est pas maximisée ou minimisée
    
    'en faisant la différence entre les dimensions extérieures et intérieures
    'de la form, j'obtiens la taille des bordures entourant ma form
    BordureX = F.Width - F.ScaleWidth
    BordureY = F.Height - F.ScaleHeight

    'la taille extérieure de ma form doit donc etre égale à la dimension intérieure
    'choisie + les bordures
    F.Width = Width + BordureX
    F.Height = Height + BordureY

End If

End Sub


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 mars 2006 14:53:15 :
j'ai ajouté des commentaires

 Sources du même auteur

Source avec Zip Source avec une capture [ERREUR CORRIGEE] PERSONNALISER LA TRANSPARENCE DE N'IMPORTE...
Source avec Zip Source avec une capture FENETRE AUX CONTOURS PERSONNALISABLES PAR SIMPLE SÉLECTION D...

 Sources de la même categorie

Source avec Zip GEST COTISATION - ASSOCIATION par MOHA555
Source avec Zip HSCROLLBAR POUR L'ARRIÈRE PLAN par 320C
Source avec Zip Source avec une capture Source .NET (Dotnet) METTRE VOTRE FORM VB.NET EN PLEINE ÉCRAN par Gabilach
RECHERCHE DANS UNE LISTE À PARTIR D'UN CHAMP TEXTE par jmeunier
Source avec Zip GESTION DES COMSOMMABLE par gboraud

 Sources en rapport avec celle ci

Source avec Zip FERMER UN PROGRAMME, UNE APPLICATION, UNE FENÊTRE... D'APRÈS... par RENAUD34
Source avec Zip Source avec une capture UN PHOTO RESIZEUR par patosch
Source avec Zip Source avec une capture CAPTEUR DE HANDLE, DE TITRE, DE CLASS, DE POSITION DE TAILLE... par Sechaud
Source avec Zip Source avec une capture ADAPTER UNE PICTURE BOX À DES COORDONNÉES par Flocreate
Source avec Zip Source avec une capture FENETRE AUX CONTOURS PERSONNALISABLES PAR SIMPLE SÉLECTION D... par _120_

Commentaires et avis

Commentaire de _120_ le 20/03/2006 17:23:37

Vous êtes des dizaines a regarder ma source et personne met de commentaire !

:'-(

Commentaire de EBArtSoft le 20/03/2006 17:59:17 administrateur CS

Private Sub Ajuster_Click()  
SetDim Me, Image1
End Sub
  
Private Sub SetDim(F As Form, O As Object)
On Error Resume Next
F.Width = O.Width + (F.Width - F.ScaleWidth)
F.Height = O.Height + (F.Height - F.ScaleHeight)
End Sub

@+

Commentaire de _120_ le 20/03/2006 18:14:46

oui mais non  ;-)

Parce que imagine que tu ais une form de ce style :

___________________________
|text1______________________|
       _____________
      |  command1   |
      |_____________|

Si tu veux que la fenetre prenne pile les dimensions nécéssaires, il faut pouvoir donner text1.width en parametre pour la largeur et command1.top+command1.height pour la hauteur

Commentaire de Gobillot le 20/03/2006 19:59:52

et si le Scalemode est égal à 3
F.Width est en Twips
F.ScaleWidth est en Pixels

donc pas bon !

Commentaire de Renfield le 20/03/2006 23:05:24 administrateur CS

très bonne remarque, Gobillot.
pour la forme :


Private Sub Set_Int_Dims(ByRef F As Form, ByVal TargetWidth As Single, ByVal TargetHeight As Single)
Dim BordureX As Single
Dim BordureY As Single
    With F
        If .WindowState = vbNormal Then 'si la fenetre n'est pas maximisée ou minimisée
            'en faisant la différence entre les dimensions extérieures et intérieures
            'de la form, j'obtiens la taille des bordures entourant ma form
            BordureX = .Width - .ScaleX(.ScaleWidth, .ScaleMode, vbTwips)
            BordureY = .Height - .ScaleY(.ScaleHeight, .ScaleMode, vbTwips)
    
            'la taille extérieure de ma form doit donc etre égale à la dimension intérieure
            'choisie + les bordures
            TargetWidth = .ScaleX(TargetWidth, .ScaleMode, vbTwips)
            TargetHeight = .ScaleY(TargetHeight, .ScaleMode, vbTwips)
            
            .Move .Left, .Top, TargetWidth + BordureX, TargetHeight + BordureY
        End If
    End With
End Sub

Commentaire de _120_ le 21/03/2006 07:35:58

Merci Gobillot featuring Renfield !

J'avais pas pensé à ça en effet !

Commentaire de _120_ le 21/03/2006 07:44:43

Renfield, quand je vois ton "ByRef F As Form" : si je ne spécifie pas ByRef ni ByVal (comme j'ai fait), ma Form est automatiquement passée par adresse, étant donnée que je fait une modification sur celle-ci, non ?

Commentaire de Renfield le 21/03/2006 09:36:18 administrateur CS

oui, ByRef est bien le mode par défaut. Mais il vaut mieux le préciser néanmoins, ça ne coute pas grand chose.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

comment déterminer la taille d'une fenêtre windows ? [ par kak ] SalutJe voudrai savoir comment déterminer la hauteur et la largeur d'une fenêtre quelconque de windows. Par example la taille de la fenêtre du browser comment déterminer la taille d'une fenêtre windows ? [ par kak ] SalutJe voudrai savoir comment déterminer la hauteur et la largeur d'une fenêtre quelconque de windows. Par example la taille de la fenêtre du browser comment déterminer la taille d'une fenêtre windows ? [ par kak ] SalutJe voudrai savoir comment déterminer la hauteur et la largeur d'une fenêtre quelconque de windows. Par example la taille de la fenêtre du browser redimensionner une fenêtre windows [ par haplov ] souvent la taille des fenêtres que certains logiciels ouvrent est insuffisante. Je pense présentement (non, non suis pas quebequois !:) à outlook 2002 largeur des bordures d'un ctrl ? [ par elaphe ] Bonjour,Comment déterminer la largeur des bordures d'un controle ou d'un form (pas la même si flat 3D etc et semble varier en fonction de la résolutio Comment appliquer une taille à une fenêtre [ par pi1147 ] Slt à tous,Pourrait-on me dire comment après avoir utiliser la fonction "shell" pour ouvrir, par exemple une fenètre realone player, on peut dimenssio redimensionner un composant suivant la taille de la fenêtre ? [ par benland ] Bonjour,je suis sous VB6, et je me suis rendu compte que cette version ne gère pas la proprité dock que l'on a sur VB.Net.Cette proprié Redimensionnement proportionnel [ par Marneus73 ] Bonjour à tous,Comment redimensionner des contrôles proportionnellement à la taille de la fenêtre ?Je m'explique : Dans ma form j'ai deux groupbox. Po Redimensionner une fenêtre sans bordures [ par EvilGost ] Bonjour à tous,je développe une appli VB.Net 2005 avec des formulaires sans bordures, de manière à pouvoir faire ma propre fenêtre avec mes propres bo Position d'une fenêtre en vb.net 2005 [ par lo4 ] Bonjour, J'ai fait un petit programme pour remplacer le gestionaire de tâches de xp mais j'ai un problème avec l'api GetWindowRect.Voici le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales