Stan mouse left button down

Odpowiedz Nowy wątek
2011-07-28 18:31
0

Jak sprawdzić w zdarzeniu MouseMove lub MouseHover czy lewy przycisk myszy jest wcisniety w momencie gdy myszka znajduje się nad kontrolką ?? Wydawać się to może banalne, z tym wyjątkiem że potrzebuję znać stan przycisku nawet wtedy gdy został wciśnięty nad inną kontrolką od tej na której sprawdzam jego stan.

Próbowałem już:
if ((Control.MouseButtons & MouseButtons.Left) != 0)
oraz
if (GetKeyState(VK_LBUTTON) > 0) zaimportowane z api
<- oba działają tylko na wciśnięcie przycisku w momencie gdy myszka znajduje sie nad kontrolką nad którą sprawdzam stan przycisku (do której mam podpięte zdarzenia)
tzn warunki te sprawdzają czy nastąpoło naciśnięcie przyciku, a nie jego stan - czy jest wciśnięty

edytowany 3x, ostatnio: majussek, 2011-07-28 18:35

Pozostało 580 znaków

2011-07-28 18:57
O_o
0

Można choćby przez

MouseButtons.ToString()=="Left";

O̾..͠o
edytowany 1x, ostatnio: O_o, 2011-07-28 19:01

Pozostało 580 znaków

2011-07-28 20:02
majussek
0
O_o napisał(a)

Można choćby przez

MouseButtons.ToString()=="Left";

Owszem to zadziała tak jak powyżej podane 2 warunki czyli gdy wcisnę przycisk trzymając kursor nad moją kontrolką,
ALE nie zadziała gdy wcisnę przycisk na innej kontolce np buttonie i najadę kursorem na moją kontrolkę z już wciśniętym przyciskiem.

Hmm, ja to mam w timerku i śmiga ;) - O_o 2011-07-28 20:11

Pozostało 580 znaków

2011-07-28 20:31
O_o
0

Okay, obejrzałem bliżej problem i kod działa dobrze. Po prostu te zdarzenia nie są wywoływanie gdy myszka jest w trybie "drag".


O̾..͠o

Pozostało 580 znaków

2011-07-28 20:40
majussek
0

Dzięki za podpowiedź. Dopiero teraz to zauważyłem.

Pozostało 580 znaków

2011-07-28 20:45
O_o
0

Hmm, chcesz dobre rozwiązanie? Gdzieś mam kod który na bieżąco reaguje na wszystko co dotyczy myszki, jak chcesz to mogę odkopać.


O̾..͠o

Pozostało 580 znaków

2011-07-28 20:46
majussek
0

Tak, bardzo by mi to pomogło.

Mkkaay, jak wykopię to wrzucę. - O_o 2011-07-28 20:48

Pozostało 580 znaków

2011-07-28 21:10
O_o
0

http://code.google.com/p/vcmf[...]FUMDF%2FUMDFtest0%2FUMDFtest0

Wbrew nazwie to wcale nie używa UMDF ( miałem przerobić to na UMDF ale jakoś poszło w niepamięć ), najważniejszy gadżet to RawMouse, kod wykopałem kiedyś w googlu ale musiałem wprowadzić ciut zmian bo z czymś był problem ( albo .NET 4 albo Win7 ).
Da się to zrobić przez globalny hook na gryzonia - wtedy komunikaty ze wszystkich myszy będą zbite w jeden ( ten kod pobiera dane każdej z myszy z osobna ;) )

Kod ma natywne zapożyczenia więc jest tylko na Windowsa.


O̾..͠o

Pozostało 580 znaków

2011-07-28 21:15
majussek
0

Grobalny Hook? Ehh wiem że tak da się to zrobić.. ale.. w swojej aplikacji mam już 2 kontrolki które z których każda zakłada swój globalny hook na myszkę i miałem nadzieję że da się to zrobić "normalnie" ;(.

Kilka hooków na myszkę? Ciut bleee, zrób jeden gdzieś w tle i niech inne kontrolki korzystają z jego danych. - O_o 2011-07-28 21:49

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0