ببین دوست عزیز. در حقیقت هندل هر پنجره هویت اون پنجره توی محیط ویندوزه. پنجره که میگم اعم از فرمها و دیالوگها و کنترلهاییه که به صورت فرزند روی اونها قرار می گیرند.
فرضا شما وقتی که متن یک TextBox رو توی VB تنظیم میکنید یک پیغام WM_SETTEXT به اون TextBox فرستاده میشه. شما فرستاده شدن این پیغام رو اصلا متوجه نمیشید. چون کنترل TextBox برای شما طوری طراحی شده که فقط یک متن رو جلوی خصوصیت Text اون مینویسید و تمام. ولی در پشت صحنه این پیغام به کنترل Edit فرستاده میشه. این فقط یک مثال بود. تمام عملیاتی که در سطح ویندوز روی پنجره ها انجام میشه بوسیله همین سیستم پیغام رسانی انجام میشه. به عنوان مثال میتونید این کد رو امتحان کنید:
Private Const WM_SETTEXT = &HC
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Form_Load()
SendMessage Text1.hwnd, WM_SETTEXT, 0, ByVal "ABBAS"
End Sub
اما گاهی اوقات پیش میاد که شما مجبورید یک پنجره رو دستکاری کنید که خارج از محیط برنامه خودتون هست. اون وقته که میتونید به عنوان یک برنامه نویس راسا اقدام به ارسال پیغام به اون کنید.
یا گاهی اوقات پیش میاد که شما با استفاده از API میخواهید تغییراتی روی یک کنترل ایجاد کنید که طراحان VB یا طراح اون کنترلی که با اون کار میکنید، برای شما پیش بینی نکرده. هر کدوم از کنترلهای عمومی ویندوز دهها ویژگی و خاصیت دارند. فرضا کنترل Edit. این کنترل دارای بسیاری از ویژگیهاست که امکان اینکه همه اونها رو در قالب شیی TextBox توی VB قرار بدن نبوده. شما فرضا بیایید توی محیط .NET یا VC++. بسیاری از این ویژگیهارو ملاحظه میکنید (حتی اونجا هم همه خصوصیات پشتیبانی نشده). با استفاده از تابع API مربوطه میتونید از اون ویژگیها توی محیط VB هم بهره بگیرید.
اما چه جوری میخواهید بین اون API و کنترلی که دارید ارتباط برقرار کنید. قطعا این کار از طریق هندل اون کنترل انجام خواهد شد.
بنابراین اگر کمی به دنیای API قدم بگذارید، متوجه میشوید که هندل پنجره ها جزو ملزومات کار با بسیاری از توابع خواهد بود.
البته همون طوری که گفتم توی ویندوز هندلهای دیگه ای هم داریم. مثل hDC که هندل به محتوای ابزار یا DC پنجره هاست یا hIcon که هندل به ایکونهاست و ...
امیدوارم که چیزایی که گفتم به دردت بخوره و اگر بازم مطلبی بود در خدمت هستم.