تابع EnableWindow :

این تابع یک پنجره را قابل استفاده و یا غیر قابل استفاده می کند .

اصل تابع :

Public Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید قابل استفاده یا غیر استفاده شود .

fEnable :  این پارامتر نیز از نوع عددی بوده و اگر برابر 1 قرار بگیرد پنجره قابل استفاده و اگر برابر 0 باشد پنجره غیر قابل استفاده می شود .

>>>>>

تابع EnableWindow :

این تابع یک پنجره را قابل استفاده و یا غیر قابل استفاده می کند .

اصل تابع :

Public Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید قابل استفاده یا غیر استفاده شود .

fEnable :  این پارامتر نیز از نوع عددی بوده و اگر برابر 1 قرار بگیرد پنجره قابل استفاده و اگر برابر 0 باشد پنجره غیر قابل استفاده می شود .

خروجی :

خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .

تابع IsWindowEnable :

این تابع قابل اسفاده بودن یک پنجره را آزمایش می کند .

اصل تابع :

Public Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید مورد آزمایش قرار بگیرد .

خروجی :

خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .

تابع GetWindowPlacement :

این تابع وضعیت نمایش پنجره از قبیل Normal و Minimize و Maximize و همچنین مکان و ابعاد پنجره را در هر وضعیت را بر می گرداند .

اصل تابع :

Public Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را بدست آوریم .

 Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که اطلاعات مربوط به پنجره در آن ذخیره می شود .

ساختار WINDOWPLACEMENT :

Public Type WINDOWPLACEMENT

        Length As Long

        flags As Long

        showCmd As Long

        ptMinPosition As POINTAPI

        ptMaxPosition As POINTAPI

        rcNormalPosition As Rect

End Type

Length : این فیلد از نوع عددی بوده و شامل اندازه ساختار در حافظه می باشد در vb از تابع Len استفاده می کنیم .

Flags : این فیلد وضعیت بازگشت پنجره را مشخص می کند و می تواند شامل دو مقدار زیر باشد :

- WPF_RESTORETOMAXIMIZED : مشخص می کند وقتی پنجره بخواهد به حالت قبلی برگردد به Maximize تغییر حالت می دهد و با مقدار عددی &H2  .

- WPF_SETMINPOSITION : زمانی که پنجره به حالت قبلی برگردد به Minimize تغییر حالت می دهد و با مقدار عددی &H1 .

showCmd : این پارامتر وضعیت پنجره را مشخص می کند و این وضعیت می تواند مقادیری داشته باشد که در تابع بعدی توضیح می دهم .

ptMinPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Minimize برمی گرداند .

ptMaxPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Maximize برمی گرداند .

rcNormalPosition : این پارامتر از نوع ساختار RECT می باشد و مختصات ابعادی پنجره را بر می گرداند .

ساختار PointApi : احتیاجی به توضیح ندارد

Public Type POINTAPI

        x As Long

        y As Long

                 End Type

ساختار RECT : این ساختار هم از اسمهاش پیداست احتیاجی به توضیح نیست

        Public Type RECT

        Left As Long

        Top As Long

        Right As Long

        Bottom As Long

                    End Type

خروجی :

خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .

تابع ShowWindow :

این تابع وضعیت نمایش یک پنجره را مشخص می کند .

اصل تابع :

Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که قرار است وضعیت آن را مشخص کنیم .

nCmdShow :  این پارامتر نیز از نوع عددی بوده و مشخص کننده وضعیت پنجره مورد نظر می باشد این پارامتر می تواند مقادیر زیر را دریافت کند :

- SW_HIDE : این Flag پنجره را از درون Taskbar ویندوز محو می کنه و سایر پنجره ها را مشخص می کند و با مقدار عددی 0 .

- SW_MAXIMIZE : این Flag پنجره را به حالت Maximize تغییر و ضعیت می دهد و با مقدار عددی 3 .

- SW_MINIMIZE : این Flag پنجره را به حالت Minimize تغییر وضعیت می دهد این Flag دقیقا برابر تابع CloseWindow است و با مقدار عددی 6 .

- SW_RESTORE : این Flag پنجره را از وضعیت Minimize یا Maximize به وضعیت Normal بر می گرداند و با مقدار عددی 9 .

- SW_SHOW : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد برعکس Flag ، SW_HIDW و با مقدار عددی 5 .

- SW_SHOWDEFAULT : این Flag پنجره را در حالت پیش فرض خو نمایش می دهد و با مقدار عددی 10 .

- SW_SHOWMAXIMIZED : این Flag پنجره را در وضعیت Maximize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 3 .

- SW_SHOWMINIMIZED : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 2 .

- SW_SHOWNORMAL : این Flag پنجره را در وضعیت Normal نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 1 .

- SW_SHOWMINNOACTIVE : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال نمی کند و با مقدار عددی 7 .

- SW_SHOWNOACTIVATE  : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و با مقدار عددی 4 .

- SW_SHOWNA   : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و اگر فعال باشد فعال و اگر فعال نباشد غیرفعال نمایش می دهد و با مقدار عددی 8 .

خروجی :

خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .

تابع SetWindowPlacement :

کار این تابع دقیقا بر عکس تابع GetWindowPlacement عمل می کند .

اصل تابع :

Public Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

پارامتر ها :

Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را تغییر بدهیم .

 Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که متغییر های آن باید پیش از فراخوانی تابع مقدار دهی شده باشد .

خروجی :

خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .

مثال :

Private Type POINTAPI

        x As Long

        y As Long

End Type

Private Type RECT

        Left As Long

        Top As Long

        Right As Long

        Bottom As Long

End Type

Private Type WINDOWPLACEMENT

        Length As Long

        flags As Long

        showCmd As Long

        ptMinPosition As POINTAPI

        ptMaxPosition As POINTAPI

        rcNormalPosition As RECT

End Type

Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

Dim Wp As WINDOWPLACEMENT

Dim ScrR As RECT, DesR As RECT

Private Sub Command1_Click()

GetWindowPlacement Me.hwnd, Wp

ScrR = Wp.rcNormalPosition

List1.Clear

List1.AddItem "FormLeft : " + CStr(ScrR.Left)

List1.AddItem "FormRight : " + CStr(ScrR.Right)

List1.AddItem "FormTop : " + CStr(ScrR.Top)

List1.AddItem "FormBottom : " + CStr(ScrR.Bottom)

End Sub

Private Sub Command2_Click()

Wp.Length = Len(Wp)

DesR.Left = 260

DesR.Right = 100

DesR.Top = 100

DesR.Bottom = 200

Wp.rcNormalPosition = DesR

Wp.showCmd = 5

SetWindowPlacement Me.hwnd, Wp

End Sub

رفقا به اندازه کافی فکر کنم توضیح دادم که دیگه این مثال و توضیح ندهم خودتون امتحان کنید .