r0ot$harp
دوشنبه 01 مهر 1387, 18:36 عصر
سلام دوستان
با خودم فکر کردم یه مقاله ای در مورد کار با پنجره ها بزارم تا دوستان با این مبحث دیگه مشکلی نداشته باشند .
خوب از اینجا شروع می کنم که می دونید برای کار با API همیشه باید هندل پنجره مربوط رو داشته باشید .
خوب برای بدست آوردن هندل پنجره راه های زیادی داریم که در این قسمت از مقاله فقط به استفاده از تابع Findwindow می پردازیم .
برای شروع کار Declares و Const های زیر را در قسمت Module پروژتون اضافه کنید :
'Const Window Manage
Public Const SW_HIDE = 0
Public Const SW_SHOW = 5
Public Const SW_MAXIMIZE = 3
Public Const SW_MINIMIZE = 6
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const WM_CLOSE = &H10
Public Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare Function ShowWindow _
Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Public Declare Function PostMessage _
Lib "user32" _
Alias "PostMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
خوب قبل از شروع هر کاری به معرفی هر کدوم از Const ها می پردازم :
SW_HIDE : برای مخفی کردن پنجره می باشد .
SW_SHOW : برای بازگرداندن پنجره از حالت مخفی می باشد .
SW_MAXIMIZE : برای بزرگ کردن پنجره می باشد .
SW_MINIMIZE : برای کوچک کردن پنجره می باشد .
SW_NORMAL : برای بردن به حالت اول یا همان معمولی می باشد .
SW_RESTORE : برای بازگرداندن پنجره از حالت Minimize می باشد .
WM_CLOSE : برای بستن کامل برنامه می باشد یا همان Close .
خوب حالا می ریم سراغ معرفی Declares ها :
FindWindow : برای پیدا کردن هندل پنجره ای بر طبق کلاس و یا کپشن پنجره .
ShowWindow : برای فرستادن مقادیر عملیاتی رویه پنجره از این Declares استفاده می شود .
PostMessage : برای ارسال مقدار بستن پنجره استفاده می شود .
خوب حالا که با توضیحات بالا آشنا شدین بهره بریم سراغ انجام دادن عملی کار :
اول از همه باید برای پیدا کردن هندل از تابع Findwindow استفاده کنیم .
Dim MainWindow As Long
MainWindow = FindWindow(vbNullString, "VB")
در خط بالا ما با استفاده از تابع Findwindow هندل پنجره ای که کپشن اون VB هست رو پیدا می کنیم .
خوب برای استفاده از هرکدام Const ها باید این گونه عمل کنیم :
برای کوچک کردن پنجره :
ShowWindow TxtHwnd.Text, SW_MINIMIZE
برای بزرگ کردن پنجره :
ShowWindow TxtHwnd.Text, SW_MAXIMIZEبرای بردن به حالت اول یا همان معمولی پنجره :
ShowWindow TxtHwnd.Text, SW_NORMALبرای بازگرداندن پنجره از حالت مخفی پنجره :
ShowWindow TxtHwnd.Text, SW_SHOWبرای مخفی کردن پنجره :
ShowWindow TxtHwnd.Text, SW_HIDEبرای بازگرداندن پنجره از حالت Minimize:
ShowWindow TxtHwnd.Text, SW_RESTOREبرای بستن پنجره :
PostMessage TxtHwnd.Text, WM_CLOSE, 0&, 0&
امید وارم مطالب بالا مورد استفاده و قبول شما دوستان و برنامه نویسان خوب واقع شده باشد .
در آخر هم برای جا افتادن بهتر موضوع یه نمونه در ضمیمه قرار داده ام .
باتشکر احسان
با خودم فکر کردم یه مقاله ای در مورد کار با پنجره ها بزارم تا دوستان با این مبحث دیگه مشکلی نداشته باشند .
خوب از اینجا شروع می کنم که می دونید برای کار با API همیشه باید هندل پنجره مربوط رو داشته باشید .
خوب برای بدست آوردن هندل پنجره راه های زیادی داریم که در این قسمت از مقاله فقط به استفاده از تابع Findwindow می پردازیم .
برای شروع کار Declares و Const های زیر را در قسمت Module پروژتون اضافه کنید :
'Const Window Manage
Public Const SW_HIDE = 0
Public Const SW_SHOW = 5
Public Const SW_MAXIMIZE = 3
Public Const SW_MINIMIZE = 6
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const WM_CLOSE = &H10
Public Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare Function ShowWindow _
Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Public Declare Function PostMessage _
Lib "user32" _
Alias "PostMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
خوب قبل از شروع هر کاری به معرفی هر کدوم از Const ها می پردازم :
SW_HIDE : برای مخفی کردن پنجره می باشد .
SW_SHOW : برای بازگرداندن پنجره از حالت مخفی می باشد .
SW_MAXIMIZE : برای بزرگ کردن پنجره می باشد .
SW_MINIMIZE : برای کوچک کردن پنجره می باشد .
SW_NORMAL : برای بردن به حالت اول یا همان معمولی می باشد .
SW_RESTORE : برای بازگرداندن پنجره از حالت Minimize می باشد .
WM_CLOSE : برای بستن کامل برنامه می باشد یا همان Close .
خوب حالا می ریم سراغ معرفی Declares ها :
FindWindow : برای پیدا کردن هندل پنجره ای بر طبق کلاس و یا کپشن پنجره .
ShowWindow : برای فرستادن مقادیر عملیاتی رویه پنجره از این Declares استفاده می شود .
PostMessage : برای ارسال مقدار بستن پنجره استفاده می شود .
خوب حالا که با توضیحات بالا آشنا شدین بهره بریم سراغ انجام دادن عملی کار :
اول از همه باید برای پیدا کردن هندل از تابع Findwindow استفاده کنیم .
Dim MainWindow As Long
MainWindow = FindWindow(vbNullString, "VB")
در خط بالا ما با استفاده از تابع Findwindow هندل پنجره ای که کپشن اون VB هست رو پیدا می کنیم .
خوب برای استفاده از هرکدام Const ها باید این گونه عمل کنیم :
برای کوچک کردن پنجره :
ShowWindow TxtHwnd.Text, SW_MINIMIZE
برای بزرگ کردن پنجره :
ShowWindow TxtHwnd.Text, SW_MAXIMIZEبرای بردن به حالت اول یا همان معمولی پنجره :
ShowWindow TxtHwnd.Text, SW_NORMALبرای بازگرداندن پنجره از حالت مخفی پنجره :
ShowWindow TxtHwnd.Text, SW_SHOWبرای مخفی کردن پنجره :
ShowWindow TxtHwnd.Text, SW_HIDEبرای بازگرداندن پنجره از حالت Minimize:
ShowWindow TxtHwnd.Text, SW_RESTOREبرای بستن پنجره :
PostMessage TxtHwnd.Text, WM_CLOSE, 0&, 0&
امید وارم مطالب بالا مورد استفاده و قبول شما دوستان و برنامه نویسان خوب واقع شده باشد .
در آخر هم برای جا افتادن بهتر موضوع یه نمونه در ضمیمه قرار داده ام .
باتشکر احسان