Bonjour,
Je souhaite récupérer les dimensions de bordures d'un mdiparent pour l'adapter à la taille d'un form.
Au préalable j'ai essayé d'activer les fonctions Autosize et autosizemode sur le mdiparent, mais ça ne marche pas.
J'utilise donc l'api getsystemmetrics pour voir les dimensions des bordures.
Le problème, c'est que "MDIParent1.ClientSize.Width" ne correspond pas tout à fait à l'espace disponible pour le form, il y a une petite bordure de 2 pixels de large de chaque côté de l'écran qui empiète sur le form et fait apparaître les scrollbar.
Sur l'axe Y l'espace disponible pour le form est réduit par la barre de menu et du statusbar
Quel est le nom de cette bordure et comment trouver sa taille? En fonction des personnalisations de l'apparence windows cette valeur peut changer donc je ne peux pas simplement ajouter 4 pixels à la taille du mdiparent
Voir image ci-dessous:
Voici le code que j'utilise (dans un module):
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Integer) As Integer Sub redimmdiform() Dim bordurefenetre_x As Integer Dim bordurefenetre_y As Integer Dim interieurmdi_x As Integer Dim interieurmdi_y As Integer Dim exterieurmdi_x As Integer Dim exterieurmdi_y As Integer Dim barredetitre_y As Integer Dim menu_y As Integer Dim statusbar_y As Integer Dim form1_x As Integer Dim form1_y As Integer 'Taille Bordure de fenêtre X bordurefenetre_x = GetSystemMetrics(7) 'SM_CXFIXEDFRAME 'Taille Bordure de fenêtre Y bordurefenetre_y = GetSystemMetrics(8) 'SM_CYFIXEDFRAME 'Taille Intérieur mdiparent X interieurmdi_x = MDIParent1.ClientSize.Width 'Taille Intérieur mdiparent Y interieurmdi_y = MDIParent1.ClientSize.Height 'Taille Extérieur mdiparent X exterieurmdi_x = MDIParent1.Width 'Taille Extérieur mdiparent Y exterieurmdi_y = MDIParent1.Height 'Taille barre de titre Y barredetitre_y = GetSystemMetrics(4) 'Taille menu Y menu_y = MDIParent1.MenuStrip.Height 'Taille statusbar Y statusbar_y = MDIParent1.StatusStrip.Height 'Taille form1 X form1_x = Form1.Width 'Taille form1 Y form1_y = Form1.Height 'Redimensionne le mdiparent pour l'adapter à la taille de form1 MDIParent1.Width = form1_x + (bordurefenetre_x * 2) MDIParent1.Height = form1_y + (bordurefenetre_y * 2) + barredetitre_y + menu_y + statusbar_y
Partager