Udostępnij za pośrednictwem


komunikat WM_XBUTTONDBLCLK

Opublikowany, gdy użytkownik kliknie dwukrotnie 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_XBUTTONDBLCLK                0x020D

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ł dwukrotnie kliknięty. Może to być jedna z następujących wartości.

Wartość Znaczenie
XBUTTON1
0x0001
XBUTTON1 został dwukrotnie kliknięty.
XBUTTON2
0x0002
XBUTTON2 został dwukrotnie kliknięty.

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.

Tylko okna, które mają styl CS_DBLCLKS, mogą odbierać komunikaty WM_XBUTTONDBLCLK, które system generuje za każdym razem, gdy użytkownik naciska, zwalnia i ponownie naciska XBUTTON1 lub XBUTTON2 w ramach limitu czasu dwukrotnego kliknięcia systemu. Dwukrotne kliknięcie jednego z tych przycisków powoduje wygenerowanie czterech komunikatów: WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLKi WM_XBUTTONUP ponownie.

W przeciwieństwie do komunikatów WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLKi WM_RBUTTONDBLCLK aplikacja powinna zwrócić true z tego komunikatu, jeśli go przetworzy. Pozwoli to na oprogramowanie, które symuluje ten komunikat w systemach Windows starszych niż Windows 2000, aby określić, czy procedura okna przetworzyła komunikat lub o nazwie 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
Winuser.h (w tym Windowsx.h)

Zobacz też

referencyjne

DefWindowProc

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_XBUTTON_WPARAM

GET_Y_LPARAM

GetCapture

GetDoubleClickTime

SetDoubleClickTime

WM_XBUTTONDOWN

WM_XBUTTONUP

koncepcyjne

danych wejściowych myszy

innych zasobów

MAKEPOINTS

PUNKTÓW