Aracılığıyla paylaş


Sistem Olayları ve Fare İletileri

Uygulamanız, hem Microsoft Windows fare iletilerini hem de sistem olaylarını göndererek tablet kaleminin en iyi tasarımını ve kullanımını içerir. Uygulamalar her kalem hareketi veya eylemi için her iki olay kümesini de alır. Uygulama daha sonra eylemin bağlamını temel alarak kullanılacak uygun olayı seçer. Windows fare iletileri etkinlikleri işaretlemek ve seçmek için iyi çalışır ve bunları kullanıcı arabirimi (UI) öğeleriyle etkileşim içeren etkinlikler için kullanmanız gerekir. Kalem olayları gerçek zamanlı mürekkep uygulaması, kalem eylemleri ve el yazısı için iyi çalışır.

Not

Kalem veya farenin kullanılıp kullanılmadığına bakılmaksızın, hem kalem olayları hem de fare iletileri bir uygulamaya gönderilir.

Kalem Girişini Fare ve Dokunmadan Ayırt Etme

Uygulamanız bir fare iletisi (WM_LBUTTONDOWN gibi) aldığında, iletinin bir kalemden mi yoksa fare cihazından mı kaynaklandığını değerlendirmek için GetMessageExtraInfoişlevini çağırabilir.

GetMessageExtraInfo döndürülen değerin 0xFFFFFF00 karşı maskeyle denetlenmesi ve ardından 0xFF515700 karşılaştırılması gerekir. Aşağıdaki tanımlar bunu daha net hale getirebilir:

#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE

Karşılaştırma doğruysa, bu fare iletisi bir Tablet PC kalemi veya dokunmatik ekran tarafından oluşturulmuştur. Diğer tüm durumlarda, bu iletinin bir fare cihazı tarafından oluşturulduğunu varsayabilirsiniz.

GetMessageExtraInfo döndürülen alt 8 bit değişkendir. Bu bitlerin 7'si (0x7F tarafından maskelenmiş alt 7), imleç kimliğini, fare için sıfırı veya kalem kimliği için değişken değeri temsil etmek için kullanılır. Ayrıca, Windows Vista'da, 0x80 tarafından maskelenen sekizinci bit, dokunma girişini kalem girişinden ayırt etmek için kullanılır (0 = kalem, 1 = dokunma).

Daha fazla bilgi için bkz. İşaretçi Cihaz Girişi ve Dokunmatik Giriş .

Desteklenen Sistem Hareketleri

Aşağıdaki tabloda, Şu anda Windows XP Tablet PC Edition'da bulunan sistem hareketleri listelenmiştir, ilgili kalem eylemleri ve sistem olayları ayrıntılı olarak anlatılmaktadır ve bunların geleneksel fare eylemleriyle nasıl ilişkili olduğu gösterilmektedir.

Kalem hareketi Fare eylemi Kalem hareketi açıklaması Olay iletileri Fare iletileri Windows tabanlı uygulamalarda davranışlar
Musluk
Sol tıklama
Kalemle ekrana bir kez dokunun.
ISG_TAP kalem kaldırıldığında gönderilir.
kalem kaldırıldığında WM_LBUTTONDOWN ve WM_LBUTTONUP gönderilir.
Menü veya araç çubuğundan komutu seçin, komut seçildiyse eylem gerçekleştirin, ekleme noktasını (IP) ayarlayın, seçim geri bildirimini gösterin.
İki kez dokunma
Çift tıklama
Ekrana iki kez hızlı bir şekilde dokunun.
ISG_DOUBLETAP ikinci dokunmada (aşağı) gönderilir. İlk dokunuşta gönderilen olayı ISG_TAP.
WM_LBUTTONDBLCLK ikinci dokunmada (aşağı) gönderilir. WM_LBUTTONDOWN ve ilk dokunmada (yukarı) tek dokunuşla gönderilen WM_LBUTTONUP.
Sözcük seçin, dosya veya klasör açın.
Basılı tutun
Sağ tıklama
Ekrana dokunun ve fare simgesi görünene kadar bekleyin ve ardından kalemi kaldırarak kısayol menüsünü görüntüleyin. Bir uygulama, kalem kaldırıldığında sağ tıklama menüsünü göstermekten farklı bir eylem gerçekleştirmeyi seçebilir.
ISG_HOLDENTER kalem yeterince uzun süre indiğinde gönderildi. ISG_RIGHTTAP kalem kaldırıldığında ve sağ tıklandığında gönderilir.
sağ tıklama gerçekleştiğinde (kalem kaldırıldığında) WM_RBUTTONDOWN ve WM_RBUTTONUP gönderilir.
Kısayol menüsünü göster.
Beklemede tutma
Sol tıklama
Ekrana dokunun ve fare simgesi görünene ve kaybolana kadar bekleyin. Kullanıcılar yanlışlıkla tally basıp basılı tuttuklarında ve dokunmaya geri dönmek istediklerinde bunu yapabilir.
ISG_TAP kalem kaldırıldığında gönderilir.
kalem kaldırıldığında WM_LBUTTONDOWN ve WM_LBUTTONUP gönderilir.
Uzun süre sol tıklayın. Fare eşdeğeri yok. Bu, kullanıcının uzun süre basılı tutma işlemi gerçekleştirmesi için bir geri dönüşdür. Olay bir dokunuşa geri döner.
Sürükleme
Sola sürükleme
Taşınacak nesneyi seçmek için ekrana dokunun ve nesne seçildikten sonra sürükleyin.
sürükleme başladığında ISG_DRAG gönderilir.
WM_LBUTTONDOWN sürüklenmeye başladığında, ardından bir dizi fare taşıma iletisi ve ardından bir WM_LBUTTONUP olayı geldiğinde gönderilir.
Ip ile başlarken Microsoft Word'de olduğu gibi sürükleyin-seçin; birden çok sözcük seçin; Windows'ta bir nesneyi sürüklerken olduğu gibi sürükleyin; Kaydırma.
Sürüklemenin ardından basılı tutun
Sağa sürükleme
Taşınacak nesneyi seçmek için ekrana dokunun. Fare simgesi görünene kadar bekleyin ve nesneyi taşımak için sürükleyin. Kısayol menüsünü görüntülemek için kalemi kaldırın.
ISG_HOLDENTER kalem bir süredir çalışmıyorken gönderildi. sürükleme başladığında ISG_RIGHTDRAG gönderilir.
WM_RBUTTONDOWN sürüklenmeye başladığında gönderilir, ardından bir dizi fare taşıma iletisi ve ardından bir WM_RBUTTONUP olayı gönderilir.
Bir nesneyi veya seçimi sürükleyip ardından bağlam menüsünü sürükleyerek sürükleyin.
Kalem vurgulama
Fare vurgulama
Kalemi ekrandan kısa bir mesafede sabit tutun.
başlangıçta gönderilen ISG_HOVERENTER olay. Vurgulama aralığı tamamlandığında, ISG_HOVERLEAVEis gönderilir.
Fare iletisi eşdeğeri yok.
Araç İpucu' nu, üzerine yuvarlama efektlerini ve diğer fare vurgulama davranışlarını gösterin.
Havada sallama
Tablet PC Giriş Paneligöster. Fare eşdeğeri yok.
Kalemi hızla yan yana hareket ettirin, ucu yukarıda, ancak aralığın içinde tutarak ekranı hareket ettirin.
Olay uygulamaya geçirilmedi.
Fare iletisi eşdeğeri yok.
Yeni, Tablet PC'ye özgü.

 

Ekran Kalemi ve Dokunma Etkileşimlerini Belirtme

Varsayılan olarak, pencereniz tüm sistem hareketi olaylarını alır ve varsayılan etkileşim modelini kullanır. Bu modelin bazı parçaları uygulamanızı etkileyebilir, bu nedenle WndProc'unuzda WM_TABLET_QUERYSYSTEMGESTURESTATUS İleti yanıt vererek bunları seçmeli olarak devre dışı bırakabilirsiniz.