#define MSG_ACTIVE 0x0033 |
#define MSG_ACTIVEMENU 0x0040 |
Indicates that the user activates the menu bar and tracks it.
This message is sent to the window procedure when the user activates the menu bar and tracks it.
If you want to change the states of menu items in the submenu before displaying it, you can handle this message.
MSG_ACTIVEMENU int pos = (int)wParam; HMENU submenu = (HMENU)lParam;
pos | The position of the activated submenu. The position value of the first submenu is 0. | |
submenu | The handle to the activated submenu. |
Example:
/* * This handler checks the specified menu items to contain * a radio bitmap by calling CheckMenuRadioItem function, * if the submenu at position 2 has been activated. */ case MSG_ACTIVEMENU: if (wParam == 2) { CheckMenuRadioItem ((HMENU)lParam, IDM_40X15, IDM_CUSTOMIZE, pConInfo->termType, MF_BYCOMMAND); CheckMenuRadioItem ((HMENU)lParam, IDM_DEFAULT, IDM_BIG5, pConInfo->termCharset, MF_BYCOMMAND); } break;
#define MSG_CSIZECHANGED 0x0027 |
Indicates the size of the client area of the window has been changed.
This message is sent as a notification to the window when the size of the client area has been changed.
MSG_CSIZECHANGED int client_width = (int)wParam; int client_height = (int)lParam;
client_width | The width of the client area. | |
client_height | The height of the client area. |
#define MSG_DEACTIVEMENU 0x0041 |
Indicates the end of the tracking of a menu bar or a popup menu.
This message is sent to the window procedure when the user has closed the tracking menu bar or popup menu.
MSG_DEACTIVEMENU HMENU menubar = (HMENU)wParam; HMENU submenu = (HMENU)lParam;
menubar | The handle to the menu bar. It will be zero when the deactivated menu is a popup menu. | |
submenu | The handle to the submenu. |
#define MSG_HITTEST MSG_NCHITTEST |
#define MSG_HSCROLL 0x0042 |
Indicates that the user has clicked the horizontal scroll bar.
This message is sent to the window procedure when the user has clicked the horizontal scroll bar and changed the position of the thumb.
MSG_HSCROLL int hs_nc = (int)wParam;
hs_nc | The scrolling code, can be one of the following values:
|
#define MSG_KILLFOCUS 0x0031 |
#define MSG_MOUSEACTIVE 0x0032 |
#define MSG_MOUSEMOVEIN 0x0050 |
Indicates the mouse is moved in/out the area of the window.
This message is posted to the window when the user moves the mouse in/out the area of the window.
MSG_MOUSEMOVEIN BOOL in_out = (BOOL)wParam;
in_out | Indicates whether the mouse has been moved in the window or out the window. |
#define MSG_NCHITTEST 0x0021 |
#define MSG_NCSETCURSOR 0x0044 |
Sets cursor shape in the non-client area.
This message is posted to the window under the cursor when the user moves the mouse in order to give the chance to change the cursor shape. The default handler set the cursor shape to the default cursor of the window. If you set a new cursor shape, your message handler should return immediately.
#define MSG_SETCURSOR 0x0020 |
Sets cursor shape in the client area.
This message is posted to the window under the cursor when the user moves the mouse in order to give the chance to change the cursor shape. The default handler set the cursor shape to the default cursor of the window. If you set a new cursor shape, your message handler should return immediately.
MSG_SETCURSOR int cx = LOSWORD (lParam); int cy = HISWORD (lParam);
cx,cy | The client coordinates of the cursor. |
Example:
/* * The following MSG_SETCURSOR handler set the cursor * shape to the arrow cursor when the window is disabled. */ case MSG_SETCURSOR: if (GetWindowStyle (hwnd) & WS_DISABLED) { SetCursor (GetSystemCursor (IDC_ARROW)); return 0; } break;
#define MSG_SETFOCUS 0x0030 |
#define MSG_SIZECHANGED 0x0026 |
Indicates the size of the window has been changed.
This message is sent to the window when the size has been changed. If you want adjust the size of the client area of the window, you should handle this message, change the values of the client area, and return non-zero value to indicate that the client area has been modified.
MSG_SIZECHANGED RECT* rcClient = (RECT*)lParam;
rcClient | The pointer to a RECT structure which contains the new client area. |
Example:
#define MSG_SIZECHANGING 0x0025 |
Indicates the size of the window is being changed.
This message is sent to the window when the size is being changed. If you want to control the actual position and size of the window when the size is being changed (this may be caused by MoveWindow or other functions), you should handle this message, and return the actual position and size of the window through the second parameter.
MSG_SIZECHANGING const RECT* rcExpect = (const RECT*)wParam; RECT* rcResult = (RECT*)lParam;
rcExpect | The expected size of the window after changing. | |
rcResult | The actual size of the window after changing. |
Example:
/* * The handler set the actual size of the window always * to be _WIDTH wide and _HEIGHT high. */ case MSG_SIZECHANGING: { const RECT* rcExpect = (const RECT*)wParam; RECT* rcResult = (RECT*)lParam; rcResult->left = rcExpect->left; rcResult->top = rcExpect->top; rcResult->right = rcExpect->left + _WIDTH; rcResult->bottom = rcExpect->top + _HEIGHT; return 0; }
#define MSG_VSCROLL 0x0043 |
Indicates that the user has clicked the vertical scroll bar.
This message is sent to the window procedure when the user has clicked the vertical scroll bar and changed the position of the thumb.
MSG_HSCROLL int vs_nc = (int)wParam;
vs_nc | The scrolling code, can be one of the following values:
|