WM_RBUTTONDOWN message
Posted when the user presses the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
A window receives this message through its WindowProc function.
#define WM_RBUTTONDOWN 0x0204
-
wParam
-
Indicates whether various virtual keys are down. This parameter can be one or more of the following values.
Value Meaning - MK_CONTROL
- 0x0008
The CTRL key is down. - MK_LBUTTON
- 0x0001
The left mouse button is down. - MK_MBUTTON
- 0x0010
The middle mouse button is down. - MK_RBUTTON
- 0x0002
The right mouse button is down. - MK_SHIFT
- 0x0004
The SHIFT key is down. - MK_XBUTTON1
- 0x0020
The first X button is down. - MK_XBUTTON2
- 0x0040
The second X button is down. -
lParam
-
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
If an application processes this message, it should return zero.
Use the following code to obtain the horizontal and vertical position:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
As noted above, the x-coordinate is in the low-order short of the return value; the y-coordinate is in the high-order short (both represent signed values because they can take negative values on systems with multiple monitors). If the return value is assigned to a variable, you can use the MAKEPOINTS macro to obtain a POINTS structure from the return value. You can also use the GET_X_LPARAM or GET_Y_LPARAM macro to extract the x- or y-coordinate.
Important
Do not use the LOWORD or HIWORD macros to extract the x- and y- coordinates of the cursor position because these macros return incorrect results on systems with multiple monitors. Systems with multiple monitors can have negative x- and y- coordinates, and LOWORD and HIWORD treat the coordinates as unsigned quantities.
To detect that the ALT key was pressed, check whether GetKeyState with VK_MENU < 0. Note, this must not be GetAsyncKeyState.
Requirement | Value |
---|---|
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
Minimum supported server |
Windows 2000 Server [desktop apps only] |
Header |
|
-
Reference
-
Conceptual
-
Other Resources