Stan mouse left button down

Stan mouse left button down
MA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 13 lat
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
OO
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 13 lat
  • Postów:98
0

Można choćby przez

Kopiuj
MouseButtons.ToString()=="Left";

O̾..͠o
edytowany 1x, ostatnio: O_o
0
O_o napisał(a)

Można choćby przez

Kopiuj
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.

OO
Hmm, ja to mam w timerku i śmiga ;)
OO
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 13 lat
  • Postów:98
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
0

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

OO
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 13 lat
  • Postów:98
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
0

Tak, bardzo by mi to pomogło.

OO
Mkkaay, jak wykopię to wrzucę.
OO
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 13 lat
  • Postów:98
0

http://code.google.com/p/vcmfsii/source/browse/#svn%2Ftrunk%2FUMDF%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
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" ;(.

OO
Kilka hooków na myszkę? Ciut bleee, zrób jeden gdzieś w tle i niech inne kontrolki korzystają z jego danych.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.