komunikat WM_XBUTTONDOWN
Opublikowano, gdy użytkownik naciska XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
Okno odbiera ten komunikat za pośrednictwem funkcji WindowProc.
#define WM_XBUTTONDOWN 0x020B
Parametry
-
wParam
-
Wyraz o niskiej kolejności wskazuje, czy różne klucze wirtualne nie działają. Może to być jedna lub więcej z następujących wartości.
Wartość Znaczenie - MK_CONTROL
- 0x0008
CTRL nie działa. - MK_LBUTTON
- 0x0001
Lewy przycisk myszy jest wyłączony. - MK_MBUTTON
- 0x0010
Środkowy przycisk myszy jest wyłączony. - MK_RBUTTON
- 0x0002
Prawy przycisk myszy jest wyłączony. - MK_SHIFT
- 0x0004
SHIFT jest wyłączony. - MK_XBUTTON1
- 0x0020
XBUTTON1 nie działa. - MK_XBUTTON2
- 0x0040
XBUTTON2 nie działa. Wyraz o wysokiej kolejności wskazuje, który przycisk został kliknięty. Może to być jedna z następujących wartości.
Wartość Znaczenie - XBUTTON1
- 0x0001
Kliknięto XBUTTON1. - XBUTTON2
- 0x0002
Kliknięto XBUTTON2. -
lParam
-
Wyraz o niskiej kolejności określa współrzędną x kursora. Współrzędna jest względna względem lewego górnego rogu obszaru klienta.
Wyraz o wysokiej kolejności określa współrzędną y kursora. Współrzędna jest względna względem lewego górnego rogu obszaru klienta.
Wartość zwracana
Jeśli aplikacja przetwarza ten komunikat, powinna zwrócić true. Aby uzyskać więcej informacji na temat przetwarzania wartości zwracanej, zobacz sekcję Uwagi.
Uwagi
System Windows obsługuje myszy z maksymalnie pięcioma przyciskami: lewym, środkowym i prawym oraz dwoma dodatkowymi przyciskami nazywanymi XBUTTON1 i XBUTTON2. Przyciski XBUTTON1 i XBUTTON2 są często zlokalizowane po bokach myszy w pobliżu podstawy. Te dodatkowe przyciski nie są obecne na wszystkich myszach. Jeśli istnieje, przyciski XBUTTON1 i XBUTTON2 są często mapowane na funkcję aplikacji, taką jak nawigacja do przodu i do tyłu w przeglądarce sieci Web.
Użyj następującego kodu, aby uzyskać informacje w parametrze wParam:
fwKeys = GET_KEYSTATE_WPARAM (wParam);
fwButton = GET_XBUTTON_WPARAM (wParam);
Użyj następującego kodu, aby uzyskać położenie poziome i pionowe:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Jak wspomniano powyżej, współrzędna x znajduje się w krótkiej wartości zwracanej; współrzędna y znajduje się w krótkim (obie reprezentują wartości podpisane, ponieważ mogą przyjmować wartości ujemne w systemach z wieloma monitorami). Jeśli wartość zwracana jest przypisana do zmiennej, możesz użyć makra MAKEPOINTS, aby uzyskać strukturę POINTS z wartości zwracanej. Możesz również użyć makra GET_X_LPARAM lub GET_Y_LPARAM, aby wyodrębnić współrzędną x lub y.
Ważny
Nie należy używać LOWORD lub makr HIWORD wyodrębnić współrzędne x i y położenia kursora, ponieważ te makra zwracają nieprawidłowe wyniki w systemach z wieloma monitorami. Systemy z wieloma monitorami mogą mieć współrzędne ujemne x i y, a LOWORD i HIWORD traktują współrzędne jako ilości niepodpisane.
W przeciwieństwie do komunikatów WM_LBUTTONDOWN, WM_MBUTTONDOWNi WM_RBUTTONDOWN aplikacja powinna zwrócić true z tego komunikatu, jeśli go przetworzy. Dzięki temu oprogramowanie, które symuluje ten komunikat w systemach Windows starszych niż Windows 2000, pozwala określić, czy procedura okna przetworzyła komunikat, czy DefWindowProc go przetworzyć.
Wymagania
Wymaganie | Wartość |
---|---|
Minimalny obsługiwany klient |
Windows 2000 Professional [tylko aplikacje klasyczne] |
Minimalny obsługiwany serwer |
Windows 2000 Server [tylko aplikacje klasyczne] |
Nagłówek |
|
Zobacz też
-
referencyjne
-
koncepcyjne
-
danych wejściowych myszy -
innych zasobów
-
PUNKTÓW