PDA

View Full Version : فوکوس



aleas2
چهارشنبه 18 خرداد 1390, 22:01 عصر
سلام خسته نباشید من برنامه ای ساختم هر از گاهی که لازم باشه فرم میاد بالا و رو همه پنجره ها قرار میگیره میخوام فوکوس رو هیچکدوم از شی های رو فرم قرار نگیره مثلا اگر دارم تو نوت پد متنی تایپ میکنم اگر فرم اومد بالا رو همه پنجره ها قرار گرفت همچنان فوکوس تو نوت پد باشه فرمی که اومده بالا مانع تایپم نشه چون فرمی هم که میاد رو همه پنجره ها قرار میگیره کوچک هسته جلو دید کاربر رو نمیگیره امیدوارم متوجه منظورم شده باشین چکار کنم؟

محسن واژدی
چهارشنبه 18 خرداد 1390, 23:04 عصر
سلام علیکم
میتوانید قبل از اینکه فرم برنامه تون restore شود توسط apiی GetFocus فوکوس پنجره فعلی که نوت پد باشد را بدست آورده و نگهدارید سپس بعد از اینکه فرم برنامه تون restore شد توسط apiی SetFocus مجددا" فوکوس را به هندل ذخیره شده بازگردانید

سعی میکنم نمونه کدی را برایتان نوشته و ضمیمه کنم

موفق باشید

محسن واژدی
چهارشنبه 18 خرداد 1390, 23:34 عصر
نمونه زیر را بررسی کنید
در این نمونه با فشار دادن دکمه موقتا" فرم Minimize شده و همزمان یک notepad اجرا میشود، سپس با گذشت مدت زمانی فرم مجددا restore میشود در حالی که همچنان focus بر روی notepad قرار دارد؛

موفق باشید
یاعلی

aleas2
پنج شنبه 19 خرداد 1390, 08:23 صبح
واقعا ممنون این مشکلم حل شد خب حالا من کلید مینابری ایجاد کردم که درصورتی کاربر در هر صفحه کلید وسط ماوس فشار میده اون دستوری که میگم اجرا میشه میخوام وقتی کاربر کلید وسط ماوس رو فشار داد فوکوس بده به text1 که از دستور Text1.SetFocus استفاده میکنم گاهی اوقات فوکوس میده به text1 گاهی اوقات هم اشاره گر فوکوس داخل تیکست یک چشمک میزنه ولی هر چی تایپ میکنم داخل تکست یک قرار نمیگیره چکار کنم؟ ؟

ضمنا" یه سوال داشتم البه شرمنده ربطی به این تاپیک نداره : چجور من مثلا کد اسکی کلید شماره 1 رو بدست اوردم بعد چجوری میتونم کد اسکی رو به همون 1 تبدیل کنم؟کد اسکی که بدست میارم دوباره برش گردونم؟

محسن واژدی
پنج شنبه 19 خرداد 1390, 08:46 صبح
میخوام وقتی کاربر کلید وسط ماوس رو فشار داد فوکوس بده به text1 که از دستور Text1.SetFocus استفاده میکنم گاهی اوقات فوکوس میده به text1 گاهی اوقات هم اشاره گر فوکوس داخل تیکست یک چشمک میزنه ولی هر چی تایپ میکنم داخل تکست یک قرار نمیگیره چکار کنم؟ ؟

میتوانید کدهای نمونه ای که در تاپیک http://barnamenevis.org/showthread.php?290011-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%84%DB%8C%D8%AF-%D9%85%DB%8C%D8%A7%D9%86%D8%A8%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%81%D8%B1%D9%85&p=1275182&viewfull=1#post1275182
بصورت زیر ویرایش کنید، در اینصورت مشکل برطرف میشود (کدهای زیر را جایگزین کدهای قبلی کنین):

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyMButton) <> 0 And Me.WindowState = vbMinimized Then
Me.WindowState = vbNormal
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Sleep 100
Me.SetFocus
End If
End Sub




چجور من مثلا کد اسکی کلید شماره 1 رو بدست اوردم بعد چجوری میتونم کد اسکی رو به همون 1 تبدیل کنم؟کد اسکی که بدست میارم دوباره برش گردونم؟

برای بدست آوردن کد اسکای یک کلید و در کل یک کاراکتر از تابع Asc و برای برگرداندن مقدار یک کداسکای از Chr استفاده کنید، نمونه زیر را مشاهده کنید:

Private Sub Command1_Click()
MsgBox "Asc(1):" & Asc("1") & vbNewLine & "Asc(1)=49 -> Chr(49):" & Chr(Asc(1))
End Sub


موفق باشید

zahedi121
جمعه 20 خرداد 1390, 07:55 صبح
سلام
مثل اینکه دوست عزیزی که سوالشون را مطرح کردند به جوابشون رسیدند ولی یک سوال در نمونه سورسی که گذاشتید
بعد از بازگشت برنامه هم فوکوس به نوت پد بر می گرده هم هم برنامه ما زیر نوت بد جای میگیره ، آیا میشه فوکوس روی نوت پد باشه ولی برنامه اصلی روی
پنجره نوت پد دیده بشه ؟

محسن واژدی
جمعه 20 خرداد 1390, 09:23 صبح
سلام
مثل اینکه دوست عزیزی که سوالشون را مطرح کردند به جوابشون رسیدند ولی یک سوال در نمونه سورسی که گذاشتید
بعد از بازگشت برنامه هم فوکوس به نوت پد بر می گرده هم هم برنامه ما زیر نوت بد جای میگیره ، آیا میشه فوکوس روی نوت پد باشه ولی برنامه اصلی روی
پنجره نوت پد دیده بشه ؟

سلام علیکم
از کد موجود در پست زیر استفاده کنید:
http://barnamenevis.org/showthread.php?290011-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%84%DB%8C%D8%AF-%D9%85%DB%8C%D8%A7%D9%86%D8%A8%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%81%D8%B1%D9%85&p=1278404&viewfull=1#post1278404

موفق باشید