📄 window.h
字号:
* \code
* MSG_SYSKEYDOWN
* int scancode = (int)wParam;
* DWORD key_flags = (DWORD)lParam;
* \endcode
*
* \param scancode The scan code of the pressed key.
* \param key_flags The shift key status when this message occurred.
*
* \sa MSG_SYSKEYUP, MSG_SYSCHAR, key_defs
*/
#define MSG_SYSKEYDOWN 0x0013
/**
* \def MSG_SYSCHAR
* \brief A system character translated from MSG_SYSKEYDOWN message.
*
* This message is translated from a MSG_SYSKEYDOWN message by \a TranslateMessage
* and sent to the current active window.
*
* \code
* MSG_SYSCHAR
* int ch = (int)wParam;
* DWORD key_flags = (DWORD)lParam;
* \endcode
*
* \param ch The ASCII code of the pressed key.
* \param key_flags The shift key status when this message occurred.
*
* \sa MSG_CHAR, TranslateMessage, key_defs
*/
#define MSG_SYSCHAR 0x0014
/**
* \def MSG_SYSKEYUP
* \brief User releases up a key when <Alt> key is down.
*
* This message is posted to the current active window when the user
* releases up a key as <Alt> key is down.
*
* \code
* MSG_SYSKEYUP
* int scancode = (int)wParam;
* DWORD key_flags = (DWORD)lParam;
* \endcode
*
* \param scancode The scan code of the released key.
* \param key_flags The shift key status when this message occurred.
*
* \sa MSG_SYSKEYDOWN, key_defs
*/
#define MSG_SYSKEYUP 0x0015
/**
* \def MSG_KEYSYM
* \brief A key symbol translated from MSG_KEYDOWN messages.
*
* This message is translated from a MSG_KEYDOWN message by \a TranslateMessage
* and sent to the current active window.
*
* Note that one translation may generate a key symbol made by more than one character,
* e.g., when using default keymap, DEL key will generate the key symbol "^[[3~".
*
* \code
* MSG_KEYSYM
* int index = HIBYTE (wParam);
* int keysym = LOBYTE (wParam);
* DWORD key_flags = (DWORD)lParam;
* \endcode
*
* \param index The index of the key symbol in one translation, zero for a new translation,
* and the \a keysym is the first symbol.
* \param keysym The code of the key symbol.
* \param key_flags The shift key status when this message occurred.
*
* \sa MSG_SYSCHAR, TranslateMessage, key_defs
*/
#define MSG_KEYSYM 0x0016
#define MSG_LASTKEYMSG 0x001F
/** @} end of key_msgs */
/**
* \defgroup post_event_msgs Post mouse/key event messages
* @{
*/
/* Group 3 from 0x0020 to 0x005F, the post mouse/key event messages. */
#define MSG_FIRSTPOSTMSG 0x0020
/**
* \def MSG_SETCURSOR
* \brief 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.
*
* \code
* MSG_SETCURSOR
* int cx = LOSWORD (lParam);
* int cy = HISWORD (lParam);
* \endcode
*
* \param cx,cy The client coordinates of the cursor.
*
* Example:
*
* \include setcursor.c
*
* \sa MSG_NCSETCURSOR
*/
#define MSG_SETCURSOR 0x0020
#define HT_UNKNOWN 0x00
#define HT_OUT 0x01
#define HT_MENUBAR 0x02
#define HT_TRANSPARENT 0x03
#define HT_BORDER_TOP 0x04
#define HT_BORDER_BOTTOM 0x05
#define HT_BORDER_LEFT 0x06
#define HT_BORDER_RIGHT 0x07
#define HT_CORNER_TL 0x08
#define HT_CORNER_TR 0x09
#define HT_CORNER_BL 0x0A
#define HT_CORNER_BR 0x0B
#define HT_CLIENT 0x0C
#define HT_NEEDCAPTURE 0x10
#define HT_BORDER 0x11
#define HT_NCLIENT 0x12
#define HT_CAPTION 0x13
#define HT_ICON 0x14
#define HT_CLOSEBUTTON 0x15
#define HT_MAXBUTTON 0x16
#define HT_MINBUTTON 0x17
#define HT_HSCROLL 0x18
#define HT_VSCROLL 0x19
#define SBPOS_LEFTARROW 0x81
#define SBPOS_RIGHTARROW 0x82
#define SBPOS_LEFTSPACE 0x83
#define SBPOS_RIGHTSPACE 0x84
#define SBPOS_UPARROW 0x85
#define SBPOS_DOWNARROW 0x86
#define SBPOS_UPSPACE 0x87
#define SBPOS_DOWNSPACE 0x88
#define SBPOS_THUMB 0x89
#define SBPOS_UNKNOWN 0x80
#define SBPOS_MASK 0x80
#define MSG_NCHITTEST 0x0021 /* this is an async message. */
#define MSG_HITTEST MSG_NCHITTEST
#define MSG_CHANGESIZE 0x0022
#define MSG_QUERYNCRECT 0x0023
#define MSG_QUERYCLIENTAREA 0x0024
/**
* \def MSG_SIZECHANGING
* \brief 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 \a MoveWindow or other functions),
* you should handle this message, and return the actual
* position and size of the window through the second parameter.
*
* \code
* MSG_SIZECHANGING
* const RECT* rcExpect = (const RECT*)wParam;
* RECT* rcResult = (RECT*)lParam;
* \endcode
*
* \param rcExpect The expected size of the window after changing.
* \param rcResult The actual size of the window after changing.
*
* Example:
*
* \include msg_sizechanging.c
*/
#define MSG_SIZECHANGING 0x0025
/**
* \def MSG_SIZECHANGED
* \brief 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.
*
* \code
* MSG_SIZECHANGED
* RECT* rcClient = (RECT*)lParam;
* \endcode
*
* \param rcClient The pointer to a RECT structure which contains the new client area.
*
* Example:
*
* \include msg_sizechanged.c
*/
#define MSG_SIZECHANGED 0x0026
/**
* \def MSG_SETFOCUS
* \brief Indicates that the window has gained the input focus.
*
* This message is sent to the window procedure
* after the window gains the input focus.
*/
#define MSG_SETFOCUS 0x0030
/**
* \def MSG_KILLFOCUS
* \brief Indicates that the window has lost the input focus.
*
* This message is sent to the window procedure
* after the window lost the input focus.
*/
#define MSG_KILLFOCUS 0x0031
/**
* \def MSG_MOUSEACTIVE
* \brief Indicates that the window has gained the input focus because
* the user clicked the window.
*
* This message is sent to the window procedure
* after the user clicked the window and it has gained the input focus.
*/
#define MSG_MOUSEACTIVE 0x0032
#define MSG_ACTIVE 0x0033
#define MSG_CHILDHIDDEN 0x0034
#define RCTM_CLICK 1
#define RCTM_KEY 2
#define RCTM_MESSAGE 3
#define RCTM_SHOWCTRL 4
/**
* \def MSG_ACTIVEMENU
* \brief 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.
*
* \code
* MSG_ACTIVEMENU
* int pos = (int)wParam;
* HMENU submenu = (HMENU)lParam;
* \endcode
*
* \param pos The position of the activated submenu. The position value of the
* first submenu is 0.
* \param submenu The handle to the activated submenu.
*
* Example:
*
* \include activemenu.c
*/
#define MSG_ACTIVEMENU 0x0040
/**
* \def MSG_DEACTIVEMENU
* \brief 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.
*
* \code
* MSG_DEACTIVEMENU
* HMENU menubar = (HMENU)wParam;
* HMENU submenu = (HMENU)lParam;
* \endcode
*
* \param menubar The handle to the menu bar. It will be zero when the deactivated
* menu is a popup menu.
* \param submenu The handle to the submenu.
*/
#define MSG_DEACTIVEMENU 0x0041
/* Scroll bar notifying code */
#define SB_LINEUP 0x01
#define SB_LINEDOWN 0x02
#define SB_LINELEFT 0x03
#define SB_LINERIGHT 0x04
#define SB_PAGEUP 0x05
#define SB_PAGEDOWN 0x06
#define SB_PAGELEFT 0x07
#define SB_PAGERIGHT 0x08
#define SB_THUMBPOSITION 0x09
#define SB_THUMBTRACK 0x0A
#define SB_ENDSCROLL 0x0B
/**
* \def MSG_HSCROLL
* \brief 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.
*
* \code
* MSG_HSCROLL
* int hs_nc = (int)wParam;
* \endcode
*
* \param hs_nc The scrolling code, can be one of the following values:
* - SB_LINELEFT\n
* The user clicked the left arrow on the bar.
* - SB_LINERIGHT\n
* The user clicked the right arrow on the bar.
* - SB_PAGELEFT\n
* The user clicked the left page area on the bar.
* - SB_PAGERIGHT\n
* The user clicked the right page area on the bar.
* - SB_THUMBPOSITION\n
* The user set a new thumb position.
* - SB_THUMBTRACK\n
* The user is draging and tracking the thumb.
* - SB_ENDSCROLL\n
* The end of scrolling.
*/
#define MSG_HSCROLL 0x0042
/**
* \def MSG_VSCROLL
* \brief 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.
*
* \code
* MSG_HSCROLL
* int vs_nc = (int)wParam;
* \endcode
*
* \param vs_nc The scrolling code, can be one of the following values:
* - SB_LINEUP\n
* The user clicked the up arrow on the bar.
* - SB_LINEDOWN\n
* The user clicked the down arrow on the bar.
* - SB_PAGEUP\n
* The user clicked the up page area on the bar.
* - SB_PAGEDOWN\n
* The user clicked the down page area on the bar.
* - SB_THUMBPOSITION\n
* The user set a new thumb position.
* - SB_THUMBTRACK\n
* The user is draging and tracking the thumb.
* - SB_ENDSCROLL\n
* The end of scrolling.
*/
#define MSG_VSCROLL 0x0043
#define MSG_NCSETCURSOR 0x0044
/**
* \def MSG_MOUSEMOVEIN
* \brief 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.
*
* \code
* MSG_MOUSEMOVEIN
* BOOL in_out = (BOOL)wParam;
* \endcode
*
* \param in_out Indicates whether the mouse has been moved in the window
* or out the window.
*/
#define MSG_MOUSEMOVEIN 0x0050
#define MSG_LASTPOSTMSG 0x005F
/** @} end of post_event_msgs */
/**
* \defgroup creation_msgs Window creation messages
* @{
*/
/* Group 4 from 0x0060 to 0x009F, the creation messages. */
#define MSG_FIRSTCREATEMSG 0x0060
/**
* \def MSG_CREATE
* \brief Indicates the window has been created, and gives you a chance to initialize your private objects.
*
* This messages is sent to the window after the window has been created and registered
* to the system. You can initialize your own objects when you receive this message,
* and return zero to the system in order to indicates the success of initialization.
* If you return non-zero to the system after handled this message, the created window
* will be destroied immediately.
*
* \code
* MSG_CREATE for main windows:
* PMAINWINCREATE create_info = (PMAINWINCREATE)lParam;
*
* MSG_CREATE for controls:
* HWND parent = (HWND)wParam;
* DWORD add_data = (DWORD)lParam;
* \endcode
*
* \param create_info The pointer to the MAINWINCREATE structure which is passed to
* CreateMainWindow function.
* \param parent The handle to the parent window of the control.
* \param add_data The first additional data passed to CreateWindow function.
*
* \sa CreateMainWindow, CreateWindow, MAINWINCREATE
*/
#define MSG_CREATE 0x0060
/**
* \def MSG_NCCREATE
* \brief Indicates the window has been created, but has not registered to the system.
*
* This message is sent to the window after the window has been created, but not
* registered the system. Like MSG_CREATE message, you can initialize your own objects
* when you receive this message, but can not create child windows of the window, and
* can not get a device context to draw.
*
* If you return non-zero to the system after handled this message, the created window
* will be destroied immediately.
*
* \code
* MSG_NCCREATE for main windows:
* PMAINWINCREATE create_info = (PMAINWINCREATE)lParam;
*
* MSG_NCCREATE for controls:
* DWORD add_data = (DWORD)lParam;
* \endcode
*
* \param create_info The pointer to the MAINWINCREATE structure which is passed to
* CreateMainWindow function.
* \param add_data The first additional data passed to CreateWindow function.
*
* \sa CreateMainWindow, CreateWindow, MAINWINCREATE
*/
#define MSG_NCCREATE 0x0061
#define MSG_INITPANES 0x0062
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -