السلام عليكم :
بسم الله الرحمن الرحيم
ضع الكود التالي في الفورم :
Private Sub Form_Load()
Zoom "I", Me, 500
End Sub
Private Sub Form_Unload(Cancel As Integer)
Zoom "O", Me, 500
End Sub
ولاحط العدد 500 هو السرعة فيمكنك تعديلها ....
وانشئ وحدة نمطية وضع فيها مايلي :
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Public Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Sub Zoom(Mode As String, TheForm As Form, Steps As Integer)
Dim D As RECT
Dim iWidth As Integer
Dim iHeight As Integer
Dim lScreen As Long
Dim X, Y, Cx, Cy As Integer
GetWindowRect TheForm.hwnd, D
iWidth = D.Right - D.Left
iHeight = D.Bottom - D.Top
lScreen = GetDC(0)
If Mode = "I" Then
For I = 1 To Steps
X = D.Left + iWidth * (1 - I / Steps) / 2
Y = D.Top + iHeight * (1 - I / Steps) / 2
Cx = D.Left + iWidth * (1 + I / Steps) / 2
Cy = D.Top + iHeight * (1 + I / Steps) / 2
Rectangle lScreen, X, Y, Cx, Cy
Next I
End If
If Mode = "O" Then
For I = Steps To 1 Step -1
X = D.Left + iWidth * (1 - I / Steps) / 2
Y = D.Top + iHeight * (1 - I / Steps) / 2
Cx = D.Left + iWidth * (1 + I / Steps) / 2
Cy = D.Top + iHeight * (1 + I / Steps) / 2
Rectangle lScreen, X, Y, Cx, Cy
Next I
End If
ReleaseDC 0, lScreen
End Sub
**************
والرجاء من الأخوة إضافة أي كود يتعلق بمثل هذه الأمور ..........