OVH Cloud OVH Cloud

Alignement à la Zone Client

2 réponses
Avatar
Stéphane Santon
Bonjour,

Sous VB6.0 comme sous VBA 2000, quelle propriété d'un contrôle (tel que
onglet multi-page) permet d'adapter automatiquement ses dimensions à
celles du contrôle parent, comme la propriété Align = alClient sous
Delphi ?

Merci

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

2 réponses

Avatar
François Picalausa
Hello,

sous VB, il faut effectuer tes redimensionnements à la main dans l'événement
resize du form.

exemple:
Private Sub Form_Resize()
'Command1 positionné à 0,0
Command1.Height = Form1.ScaleHeight
Command1.Width = Form1.ScaleWidth
End Sub

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Stéphane Santon" a écrit dans le message
de news:
Bonjour,

Sous VB6.0 comme sous VBA 2000, quelle propriété d'un contrôle (tel
que onglet multi-page) permet d'adapter automatiquement ses
dimensions à celles du contrôle parent, comme la propriété Align > alClient sous Delphi ?

Merci


Avatar
Christophe
Salut,

Pour gerer les dimensions d'un controle il te faut utiliser ses propriété
height et width (hauteur et largeur), la position du controle est ensuite
donnée par left et Top.
Un controle a comme unité celle de son conteneur.
D'une manière générale le plus simple pour récupérer la zone client d'un
conteneur est d'utiliser l'API getclientrect: puis pour passer de
coordonnées client au coordonnées écran ClientToscreen.
Ci-dessous une copie d'une fonction qui positionne les fenetres dans l'appli
sur la quelle je travail, elle illustre ces deux fonctions,
(je te la livre en l'état)


Private Declare Function GetClientRect& Lib "user32" (ByVal hwnd As Long,
lpRect As Rect)
Private Declare Function ClientToScreen& Lib "user32" (ByVal hwnd As Long,
lpPoint As POINTAPI)
Private Type Rect
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type

Public Type RECTPIXEL
x As Single
y As Single
End Type


' Procedure : Position
' DateTime : 25/03/04 11:34
' Author : VERGON Christophe
' Purpose : defini la position d'une form independante en fonction du
"conteneur" MDI
'
'cas 0 : supgauche
'cas 1 : centré
'cas 2: centré haut
'cas 4 et 5 : modif aligne barre d'outil objets
'*************************************
' ****************
' ********
Public Function position(F As Form, pos As Long)
Dim p As POINTAPI
Dim dummy&
Dim myrect As Rect
Dim Xpix As Single
Dim Ypix As Single
Dim px As RECTPIXEL
Dim h&

'nombre de twips par pixel
'zone client de mdiform1

Xpix = Screen.TwipsPerPixelX
Ypix = Screen.TwipsPerPixelY
dummy& = GetClientRect&(MDIForm1.hwnd, myrect)
h& = MDIForm1.Pctdib.Height / Ypix
Select Case pos


Case 0

p.x = myrect.Left
p.y = myrect.Top + h&
Case 1
p.x = (myrect.Right - myrect.Left) / 2 - F.Width / Xpix / 2
p.y = (myrect.Bottom - myrect.Top) / 2 - F.Height / Ypix / 2 + h&
Case 2
p.x = (myrect.Right - myrect.Left) / 2 - F.Width / Xpix / 2
p.y = myrect.Top + h&
Case 3
'dans la barre d'outil droite
'zone client de Pctbutton
dummy& = GetClientRect(MDIForm1.Pctbutton.hwnd, myrect)
p.x = myrect.Left
's'aligne sur line5
p.y = (MDIForm1.Line5.Y1) / Ypix
'passe en coordonnées écran
dummy& = ClientToScreen(MDIForm1.Pctbutton.hwnd, p)
'transforme en twips
px.x = Xpix * p.x
px.y = Ypix * p.y
F.Width = MDIForm1.Pctbutton.Width
F.Move px.x, px.y
Exit Function
End Select
'transforme en coordonnées écran
'et en twips

dummy& = ClientToScreen(MDIForm1.hwnd, p)
px.x = Xpix * p.x
px.y = Ypix * p.y

F.Move px.x, px.y

End Function


"Stéphane Santon" a écrit dans le message de
news:
Bonjour,

Sous VB6.0 comme sous VBA 2000, quelle propriété d'un contrôle (tel que
onglet multi-page) permet d'adapter automatiquement ses dimensions à
celles du contrôle parent, comme la propriété Align = alClient sous
Delphi ?

Merci

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime