-
شنبه 13 تیر 1388, 12:53 عصر
#8
کاربر دائمی
نقل قول: یه سری آموزش های فوق العاده جالب برای دوستان عزیز
چگونه می توان هندل ( Handle ) یک Textbox را در یک پنجره بدست آورد ؟
پاسخ : برای بدست آوردن هندل پنجره برنامه ای که هم اکنون باز است از تابع FindWindow استفاده کنید . نحوه declare کردن آن بصورت زیر است :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
فرض کنید caption فرم برنامه مورد نظرتان در متغیر strWindowName قرار داشته باشد . با دستور زیر می توانید هندل پنجره آنرا بدست آورید :
Dim hwndFound As Long
hwndFound = FindWindow(vbNullString, strWindowName)
نکته : برای پیدا کردن هندل پنجره برنامه ای که caption آنرا بطور دقیق نمی دانید می توانید از تابع FindWindowLike استفاده کنید .
حال که هندل پنجره مورد نظرتان را استخراج کردید می توانید با استفاده از تابع FindWindowEx هندل اشیا موجود در آن پنجره را بدست آورید . نحوه declare کردن این تابع بصورت زیر است :
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
این تابع را بصورت زیر استفاده کنید :
htextbox = FindWindowEx(hwndFound, ByVal 0&, "ThunderRT6TextBox", vbNullString)
که ThunderRT6Textbox نام کلاس Rich Textbox ها در ویژوال بیسیک 6 است . دستور فوق هندل اولین Textbox موجود در پنجره را به شما بر می گرداند . برای بدست آوردن هندل سایر Textbox ها از حلقه زیر استفاده کنید :
Dim lChild As Long
Dim lLast As Long
Do
lLast = lChild
lChild = FindWindowEx(lParent, lChild, "ThunderRT6Textbox", vbNullString)
Loop While lChild
برچسب های این تاپیک
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت