Konu: Fareyi Hapsetmek
Bir formda fareyi belli bir alana nasıl hapsedebilirim? Yani belirlediğim koordinatların dışına farenin çıkmasını engelleyebilir miyim?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
Bir formda fareyi belli bir alana nasıl hapsedebilirim? Yani belirlediğim koordinatların dışına farenin çıkmasını engelleyebilir miyim?
"Bir formda fareyi belli bir alana nasıl hapsedebilirim? Yani belirlediğim koordinatların dışına farenin çıkmasını engelleyebilir miyim?" diye sormuştum. Hiç cevap veren olmadı maalesef. Galiba gözden kaçtı. Ya da foxproda bunun çözümü yok
Declare Integer ClipCursor In WIN32API String @ lpRect
Declare Integer ClientToScreen In WIN32API Integer HWnd, String @ lpPoint
*DECLARE integer ScreenToClient IN WIN32API integer hWnd, string @ lpPoint
_Screen.AddObject("myShape","shape") && Just for showing where we lock the cursor
With _Screen.myShape
.BackColor = 255
.Left = 200
.Top = 300
.Width = 250
.Height = 500
.Visible = .T.
Endwith
LOCAL TopLeft,BottomRight
TopLeft = CreatePoint(200,300)
BottomRight = CreatePoint(200+250,300+500)
ClientToScreen(_screen.HWnd, @TopLeft) && convert shape's coordinates to desktop coordinates
ClientToScreen(_screen.HWnd, @BottomRight)
*lcClipTo = CreateRectangle(200,300,400,800) && direct screen coordinates
lcClipTo = m.TopLeft + m.BottomRight && clip area - rect structure
ClipCursor(@lcClipTo)
Wait Window "Any key to release"
ClipCursor(0)
_Screen.RemoveObject("myShape")
Function CreatePoint(m.tnX,m.tnY)
Return ;
BINTOC(m.tnX,"4RS")+;
BINTOC(m.tnY,"4RS")
Function CreateRectangle(m.tnLeft,m.tnTop,m.tnRight,m.tnBottom)
Return ;
CreatePoint(m.tnLeft, m.tnTop)+;
CreatePoint(m.tnRight,m.tnBottom)
Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.
Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.
Önemli olan türkçenin içine ingilizce karıştırmamak. Günlük konuşmalarda veya yazışmalarda görev yerine "task", iş bitimi yerine "deadline", onay yerine "confirm" kullanmamak.
Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.
Hocam sen öyle güzel kodlar yolladıktan sonra istersen açıklamalarını rusca yap hiç sorun değil
Ben bazen aradığım kodları rusca veya çince sayfalardan bile buluyorum. Kod doğru çalıştıktan sonra sorun çıkmıyor. Tabii bunlar kısa kodlar için geçerli, uzun kodlarda bazen karışıklık yaşanıyor.
Teşekür Ederim. Kodlarınız Sayesinde Problemim Çözüldü.