WM_POINTERLEAVE iletisi
İşaretçi algılama aralığını pencerenin üzerinde bıraktığında (üzerine gelindiğinde) veya işaretçi pencerenin sınırlarının dışına çıktığında pencereye gönderilir.
Bir pencere bu iletiyi WindowProc işlevi aracılığıyla alır.
! [Önemli]
Masaüstü uygulamaları DPI'ye duyarlı olmalıdır. Uygulamanız DPI farkında değilse, DPI sanallaştırması nedeniyle işaretçi iletilerinde ve ilgili yapılarda bulunan ekran koordinatları yanlış görünebilir. DPI sanallaştırma, DPI farkında olmayan ve varsayılan olarak etkin olan uygulamalara otomatik ölçeklendirme desteği sağlar (kullanıcılar bunu kapatabilir). Daha fazla bilgi için bkz. Yazma High-DPI Win32 Uygulamaları.
#define WM_POINTERLEAVE 0x024A
Parametre
-
wParam
-
İşaretçi tanımlayıcısını ve ek bilgileri içerir. Bu bilgileri almak için aşağıdaki makroları kullanın.
- GET_POINTERID_WPARAM(wParam): işaretçi tanımlayıcısı.
- IS_POINTER_INRANGE_WPARAM(wParam): Bu iletinin algılama aralığını terk etmemiş bir işaretçi tarafından oluşturulup oluşturulmadığını gösterir. İşaretçi pencerenin algılama aralığından ayrıldığında bu bayrak ayarlanmaz.
- IS_POINTER_INCONTACT_WPARAM(wParam): Bu iletinin kişideki bir işaretçi tarafından oluşturulup oluşturulmadığını gösteren bir bayrak. Bu bayrak algılama aralığındaki bir işaretçi için ayarlanmadı (vurgulama).
-
lParam
-
İşaretçinin nokta konumunu içerir.
Not
İşaretçi önemsiz olmayan bir alan üzerinden cihazla iletişim kurabileceğinden, bu nokta konumu daha karmaşık bir işaretçi alanının basitleştirilmesi olabilir. Mümkün olduğunda, bir uygulama nokta konumu yerine tam işaretçi alanı bilgilerini kullanmalıdır.
Noktanın fiziksel ekran koordinatlarını almak için aşağıdaki makroları kullanın.
- GET_X_LPARAM(lParam): x (yatay nokta) koordinatı.
- GET_Y_LPARAM(lParam): y (dikey nokta) koordinatı.
Dönüş değeri
Bir uygulama bu iletiyi işlerse sıfır döndürmelidir.
Uygulama bu iletiyi işlemezse, DefWindowProcçağırmalıdır.
Açıklamalar
WM_POINTERLEAVE bildirimi, işaretçi pencere yüzeyinin üzerindeyken modu değiştirmek veya kullanıcıya geri bildirim göndermek için bir pencere tarafından kullanılabilir.
Bu bildirim yalnızca işaretçi için giriş alan pencereye gönderilir. Aşağıdaki tabloda, bu bildirimin gönderildiği bazı durumlar listeleniyor.
Eylem | Bayrak Kümesi | Gönderilen Bildirimler |
---|---|---|
Üzerine gelinen işaretçi pencere sınırlarını aşıyor. | IS_POINTER_INRANGE_WPARAM | İşaretçinin hareket ettiği sınırın dışındaki pencere. |
İşaretçi algılama aralığının dışına çıkıyor. | YOK | İşaretçinin algılama aralığını bıraktığı pencere. |
! [Önemli]
Bir pencere bir işaretçinin yakalanmasını kaybettiğinde ve WM_POINTERCAPTURECHANGED bildirimini aldığında, genellikle başka bildirim almaz. Bu nedenle, eşit olarak eşleştirilmiş WM_POINTERDOWN/WM_POINTERUP veya WM_POINTERENTER/WM_POINTERLEAVE bildirimlerine dayalı hiçbir varsayımda bulunmamanız önemlidir.
Kişi giriş dijitalleştiricisi ile korunursa ve işaretçi pencerenin dışına taşınırsa, WM_POINTERLEAVE oluşturulmaz. WM_POINTERLEAVE yalnızca üzerine gelinen işaretçi pencere sınırlarını aştığında veya kişi sonlandırıldığında oluşturulur.
WM_POINTERLEAVE, giriş bir fare cihazından geliyorsa gönderilen ileti kuyruğuna postalanır.
Gereksinim -leri
Gereksinim | Değer |
---|---|
Desteklenen en düşük istemci |
Windows 8 [yalnızca masaüstü uygulamaları] |
Desteklenen en düşük sunucu |
Windows Server 2012 [yalnızca masaüstü uygulamaları] |
Üstbilgi |
|
Ayrıca bkz.
-
Başvuru