ورود

View Full Version : مقاله: ثابت هایی برای انجام عملیات برروی پنجره ها



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&

امید وارم مطالب بالا مورد استفاده و قبول شما دوستان و برنامه نویسان خوب واقع شده باشد .


در آخر هم برای جا افتادن بهتر موضوع یه نمونه در ضمیمه قرار داده ام .


باتشکر احسان

Snoopboy
جمعه 28 خرداد 1389, 20:08 عصر
خیلی آموزش جامع و جالبی بود . ولی یه سوال دارم :خجالت:
مثلا ما تو همون پنجره VB یک تکست باکس داریم حالا چطوری می تونیم از طریق همین برنامه و آموزش توی اون تکست باکس چیزی بنویسیم؟