2012-06-13 9 views
5

(pierwsza kwestia następnie wytłumaczę)Mouseless Drag and Drop - zmienić sposób wydarzenie są podniesione (podniesienie spadku/event przeciągnij programowo)

Jak powiedzieć aplikację upuścić obiekt/podnieść spadek wydarzenie programowo (nie używam myszy)?

Obecnie pracuję dla MSKinect i chcę zaimplementować przeciągnij i upuść naprawdę blisko natywnego przeciągania i upuszczania (patrz msdn doc).

Wcześniej zaimplementowałem przeciąganie i upuszczanie przy użyciu płótna i używanie zdarzenia wywoływanego przez kursory Kinect w celu "przeciągania" obiektów. ale jestem bardziej zainteresowany przesyłaniem danych za pomocą przeciągania i upuszczania.

Wiem, że zwykle zdarzenie upuszczenia jest uruchamiane po zwolnieniu przycisku myszy, chcę wykonać zwolnienie przeciągania, gdy wystąpi dany gest.

Dodatkowe informacje: Jestem wdrażania Menedżer oparciu o LesterLobo's work

Odpowiedz

0

można globalnie symulować ruchy myszy i kliknięcia przy użyciu funkcji SendInput API Win32. Instrukcje dotyczące wywoływania funkcji można znaleźć w języku C# here.

Funkcja SendInput jest tak blisko, jak to jest możliwe za pomocą myszy. Niestety, praca z nim nie jest zbyt wygodna. Będziesz musiał zasymulować naciśnięcie lewego przycisku myszy, poruszenie myszą i zwolnienie lewego przycisku myszy.

Należy zauważyć, że to podejście jest przeznaczone do przeciągania różnych aplikacji, a także aplikacji. Jeśli chcesz przeciągnąć elementy w obrębie aplikacji, najprawdopodobniej jest to prostsze rozwiązanie.

+0

Myślę, że omijanie myszy za pomocą SendInput może działać, ale wolałbym tylko podnieść zdarzenie w kodzie z tyłu (w ten sam sposób, w jaki mogliśmy podnieść zdarzenie Click). Nie chcę używać myszy (lub jej wejścia) w ogóle, ponieważ mam dwa kursory z Kinectem dla dwóch różnych użytkowników (tj. 4 kursory). Nie chcę żadnej współbieżności w stosunku do tej funkcji: istnieje 4 możliwe przeciągnięcie i upuszczenie w tym samym czasie. – astreal

Powiązane problemy