How would you detect when the user right-clicks the title bar of a form?
Printable View
How would you detect when the user right-clicks the title bar of a form?
Subclass the window for this message
Quote:
WM_NCRBUTTONDOWN
The WM_NCRBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
WM_NCRBUTTONDOWN
nHittest = (INT) wParam; // hit-test value
pts = MAKEPOINTS(lParam); // position of cursor
Parameters
nHittest
Value of wParam. Specifies the hit-test value returned by the DefWindowProc function as a result of processing the WM_NCHITTEST message. For a list of hit-test values, see WM_NCHITTEST.
pts
Value of lParam. Specifies aPOINTS structure that contains the x- and y-coordinates of the cursor. The coordinates are relative to the upper-left corner of the screen.
Return Values
If an application processes this message, it should return zero.
eeh???
Windows communicates between the user & stuff on the screen by sending messages.
Every keystroke, mousemove,everything is a message.
He is telling you to get the handle (hWnd ) of the titlebar (it's a window) and peek at the message stream going to it. This is called subclassing a window.
If you search this site, there are about 500 examples of subclassing, of finding the handle of a window, and looking at the messages.
This is an advanced programming technique.