WM_RBUTTONDOWN message (Windows)

Switch View :
ScriptFree
WM_RBUTTONDOWN message

Applies to: desktop apps only

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

Parameters

wParam

Indicates whether various virtual keys are down. This parameter can be one or more of the following values.

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

Return value

If an application processes this message, it should return zero.

Remarks

Use the following code to obtain the horizontal and vertical position:


xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

You can also use the MAKEPOINTS macro to convert the lParam parameter to a POINTS structure.

To detect that the ALT key was pressed, check whether GetKeyState with VK_MENU < 0. Note, this must not be GetAsyncKeyState.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Winuser.h (include Windows.h)

See also

Reference
GET_X_LPARAM
GET_Y_LPARAM
GetCapture
GetKeyState
SetCapture
WM_RBUTTONDBLCLK
WM_RBUTTONUP
Conceptual
Mouse Input
Other Resources
MAKEPOINTS
POINTS

 

 

Send comments about this topic to Microsoft

Build date: 3/6/2012

Community Content

Thomas Lee
Error c2039

void

CKtoolDlg::OnRButtonDown(UINT nFlags, CPoint point)

{

CDialog::OnRButtonDown(nFlags, point);

}

error C2039: 'OnRButtonDown' : is not a member of 'CDialog'

how I solve this problem


Thomas Lee
Value
WM_RBUTTONDOWN = &H204
MK_CONTROL = &H8
MK_LBUTTON = &H1
MK_MBUTTON = &H10
MK_RBUTTON = &H2
MK_SHIFT = &H4
MK_XBUTTON1 = &H20
MK_XBUTTON2 = &H40

jk79
Beispiel Code (bei Maustaste rechts down)
  
case WM_RBUTTONDOWN:
{
int mx = LOWORD(lParam);
int my = HIWORD(lParam);
int taste = wParam;
Maus.X_alt = Maus.X;
Maus.Y_alt = Maus.Y;
Maus.X = mx;
Maus.Y = my;
if (taste == MK_LBUTTON) {Maus.Links = true; Maus.LinksGed = true; }
if (taste == MK_RBUTTON) {Maus.Rechts = true; Maus.RechtsGed = true; }
if (taste == MK_MBUTTON) {Maus.Mitte = true; Maus.MitteGed = true; }
}
break;