Windows window message example details

  • 2020-04-02 03:02:52
  • OfStack

This example summarizes the Windows window message. Share with you for your reference. The details are as follows:

//////////////////////////////////////////////////////////////////////////    
#include "AFXPRIV.H"//The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "Dde.h"//DDEThe source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "CPL.H"// The control panel The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "WFEXT.H"// File manager The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "vfw.h"// video-captured The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "ras.h"//RAS( Remote access service ) the The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "imm.h"// Input method editor The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "tspi.h"//The source of the definition of the message value & NBSP; & have spent & have spent < br / > #include "setupapi.h"//The source of the definition of the message value & NBSP; & have spent & have spent < br / > //////////////////////////////////////////////////////////////////////////   
#ifndef WM_SYSTIMER   
#define WM_SYSTIMER 0x0118 //(caret blink)   
#endif   
#define DRV_EXITAPPLICATION 0x000C //Driver message related & NBSP; & have spent & have spent < br / > #define WM_HIBERNATE 0x03FF //WINCE unique message (memory resource limitation related) & NBSP; & have spent & have spent < br / > //Window message decoding & NBSP; & have spent & have spent < br / > #define IDSTR(MsgID) MsgID,#MsgID   
typedef struct   
{   
  DWORD dwMsg;   
  LPCTSTR szMsgText;   
  LPCTSTR szNote;   
} t_MSGNOTE;   
static t_MSGNOTE messagesnote[] =   
{   
  IDSTR(WM_NULL)," An empty message , Can detect whether the program has a response, etc ",   
    IDSTR(WM_CREATE)," Create a new window ",   
    IDSTR(WM_DESTROY)," Destroy a window ",   
    //IDSTR(0x0004),"",   
    IDSTR(WM_MOVE)," Move a window ",   
    IDSTR(WM_SIZE)," Change the size of a window ",   
    IDSTR(WM_ACTIVATE)," A window is activated or deactivated ",   
    IDSTR(WM_SETFOCUS)," Turn the focus to a window ",   
    IDSTR(WM_KILLFOCUS)," Causes a window to lose focus ",   
    //IDSTR(0x0009),"",   
    IDSTR(WM_ENABLE)," Make a window available ",   
    IDSTR(WM_SETREDRAW)," Sets whether the window can be redrawn ",   
    IDSTR(WM_SETTEXT)," Sets the text of a window ",   
    IDSTR(WM_GETTEXT)," Copy the text of the window into the buffer ",   
    IDSTR(WM_GETTEXTLENGTH)," Gets the text length of the window ( No terminator )",   
    IDSTR(WM_PAINT)," The window to redraw ",   
    IDSTR(WM_CLOSE)," This message is sent when the user closes the window , And then it will send WM_DESTROY The message ",   
    IDSTR(WM_QUERYENDSESSION)," When shutdown or logout occurs, the system sends priority to each process WM_QUERYENDSESSION, Tell the application to shut down or log out ",   
    IDSTR(WM_QUIT)," Close the execution of the message loop terminator ",   
    IDSTR(WM_QUERYOPEN)," The minimized window is about to be restored to its previous size position ",   
    IDSTR(WM_ERASEBKGND)," This message is triggered when the background of a window must be erased ( Such as : When the window size changes )",   
    IDSTR(WM_SYSCOLORCHANGE)," When the system color changes , Send this message to all top-level Windows ",   
    IDSTR(WM_ENDSESSION)," The system issues a shutdown or logout WM_QUERYENDSESSION The message , This message is then sent to the application , Notifies the program that the session is over ",   
    //IDSTR(0x0017),"",   
    IDSTR(WM_SHOWWINDOW)," Send this message to a window , To hide or display the window ",
    //IDSTR(0x0019),"",   
    IDSTR(WM_WININICHANGE)," Read and write "win.ini" This message is sent to all top-level Windows , Notifies other processes that the file has been changed ",   
    IDSTR(WM_DEVMODECHANGE)," Change device mode Settings ("win.ini") when , Applications that process this message can reinitialize their device mode Settings ",   
    IDSTR(WM_ACTIVATEAPP)," Window process activates state changes , The window being activated belongs to a different application ",//??   
    IDSTR(WM_FONTCHANGE)," This message is sent to all top-level Windows when the system's font repository changes ",   
    IDSTR(WM_TIMECHANGE)," This message is sent to all top-level Windows when the time of the system changes ",
    IDSTR(WM_CANCELMODE)," Send this message to cancel an ongoing mode ( operation )( As shown by the mouse ), For example, : When a modal window starts , The parent window will receive this message ; The message has no arguments ",   
    IDSTR(WM_SETCURSOR)," If the mouse cursor moves within a window and the mouse is not captured , This message is sent to a window ",   
    IDSTR(WM_MOUSEACTIVATE)," When the mouse cursor is in an inactive window , While the user is pressing a key of the mouse , This message is sent to the current window ",   
    IDSTR(WM_CHILDACTIVATE)," Click on the window title bar or when the window is activated, moved, or resized , This message will be sent to MDI Child window ",   
    IDSTR(WM_QUEUESYNC)," This message is sent by a computer-based training program , through WH_JOURNALPALYBACK the HOOK The program separates the user input message ",   
    IDSTR(WM_GETMINMAXINFO)," When the window is about to change size or position , The system sends this message to the window , This message is sent when the user drags a resettable window ",   
    //IDSTR(0x0025),"",   
    IDSTR(WM_PAINTICON)," This message is sent when a minimized window icon will be redrawn ",
    IDSTR(WM_ICONERASEBKGND)," This message is sent to a minimized window , Its background must be redrawn only if it is drawn before the icon ",   
    IDSTR(WM_NEXTDLGCTL)," Send this message to a dialog window procedure , To set the keyboard focus between the controls ",   
    //IDSTR(0x0029),"",   
    IDSTR(WM_SPOOLERSTATUS)," This message is sent whenever a job is added or removed from the print management queue ",   
    IDSTR(WM_DRAWITEM)," This message is sent to the owner of buttons, combo boxes, list boxes, and menus when their appearance changes ",   
    IDSTR(WM_MEASUREITEM)," This message is sent to the owner of buttons, combo boxes, list boxes, list controls, and menu items when they are created ",   
    IDSTR(WM_DELETEITEM)," When the list box or combo box is destroyed or passed LB_DELETESTRING , LB_RESETCONTENT , CB_DELETESTRING or CB_RESETCONTENT When certain items are deleted from the message , This message is sent to the owner of these controls ",   
    IDSTR(WM_VKEYTOITEM),"LBS_WANTKEYBOARDINPUT The style list box sends this message to its owner , In order to respond to WM_KEYDOWN The message ",   
    IDSTR(WM_CHARTOITEM),"LBS_WANTKEYBOARDINPUT The style list box sends this message to its owner , In order to respond to WM_CHAR The message ",   
    IDSTR(WM_SETFONT)," Specifies the font used by the control ",   
    IDSTR(WM_GETFONT)," Gets the font used by the current control to draw its text ",   
    IDSTR(WM_SETHOTKEY)," Associate a hotkey to a window ",   
    IDSTR(WM_GETHOTKEY)," Determines whether a hotkey is associated with a window ",   
    //IDSTR(0x0034),"",   
    //IDSTR(0x0035),"",   
    //IDSTR(0x0036),"",   
    IDSTR(WM_QUERYDRAGICON)," This message is sent to the minimized window (iconic), When the window will be dragged and dropped without an icon defined in its window class , The application can return a handle to an icon or cursor. The system displays the icon or cursor when the user drags and drops the icon ",   
    //IDSTR(0x0038),"",   
    IDSTR(WM_COMPAREITEM)," This message can be sent to determine the combo box (CBS_SORT) Or list box (LBS_SORT) The relative position of the new item in ",   
    //IDSTR(0x003A),"",   
    //IDSTR(0x003B),"",   
    //IDSTR(0x003C),"",   
    IDSTR(WM_GETOBJECT),""oleacc.dll"(COM component )(Microsoft Active Accessibility: A technology that facilitates the use of computers by the disabled ) This message is sent to activate the service program to get information about the associated object it contains ",   
    //IDSTR(0x003E),"",   
    //IDSTR(0x003F),"",   
    //IDSTR(0x0040),"",   
    IDSTR(WM_COMPACTING)," Display memory is running low ",   
    //IDSTR(0x0042),"",   
    //IDSTR(0x0043),"",   
    IDSTR(WM_COMMNOTIFY),"Win3.1 In the , When a serial port event occurs , The communication device driver sends this message to the system , Indicates the status of the I/o queue ",   
    //IDSTR(0x0045),"",   
    IDSTR(WM_WINDOWPOSCHANGING)," This message will be sent to those sizes and locations (Z_Order) Window to be changed , To invoke SetWindowPos Function or other window management function ",   
    IDSTR(WM_WINDOWPOSCHANGED)," This message will be sent to those sizes and locations (Z_Order) Windows that have been changed , To invoke SetWindowPos Function or other window management function ",   
    IDSTR(WM_POWER)," This message is sent when the system is about to enter a pause state ( Apply to 16 bit windows)",   
    //IDSTR(0x0049),"",   
    IDSTR(WM_COPYDATA)," This message is sent when one application passes data to another ",   
    IDSTR(WM_CANCELJOURNAL)," When the user deactivates the program log activation state , Send this message to that application. The message is sent using an empty window handle ",   
    //IDSTR(0x004C),"",   
    //IDSTR(0x004D),"",   
    IDSTR(WM_NOTIFY)," When an event has occurred for a control or the control needs some information , Send this message to its parent window ",   
    //IDSTR(0x004F),"",   
    IDSTR(WM_INPUTLANGCHANGEREQUEST)," This message is sent to the focus window when the user changes the input method by clicking a language indicator on the taskbar or a shortcut key combination ",   
    IDSTR(WM_INPUTLANGCHANGE)," After switching the input method , The system sends this message to the affected top-level window ",   
    IDSTR(WM_TCARD)," The program is initialized windows The help routine sends this message to the application ",   
    IDSTR(WM_HELP)," Press the <F1> after , If a menu is active , Sends this message to the menu associated with this window ; Otherwise it is sent to the window with focus ; If there is no current focus , This message is sent to the currently active window ",   
    IDSTR(WM_USERCHANGED)," Send this message to all Windows when the user has logged in or logged out ; The system updates the user's Settings when the user logs in or exits , The system sends this message as soon as the user updates the Settings ",   
    IDSTR(WM_NOTIFYFORMAT)," The public control, the custom control, and the parent window determine the value of the control through this message WM_NOTIFY Is used in the notification message ANSI or UNICODE, This message enables a control to communicate with its parent ",   
    IDSTR(WM_CONTEXTMENU)," This message is sent to a window when the user right-clicks on it , Right click menu ",   
    IDSTR(WM_STYLECHANGING)," When calling SetWindowLong Function is about to change the style of one or more Windows , Send this message to that window ",   
    IDSTR(WM_STYLECHANGED)," When calling SetWindowLong Function after changing the style of one or more Windows , Send this message to that window ",   
    IDSTR(WM_DISPLAYCHANGE)," When the resolution of the monitor changes , Send this message to all Windows ",   
    IDSTR(WM_GETICON)," This message is sent to a window , Returns a handle to a large icon or small icon associated with a window ",   
    IDSTR(WM_SETICON)," The application sends this message to associate a new large or small icon with a window ",   
    IDSTR(WM_NCCREATE)," When a window is first created , This message in WM_CREATE Send before sending a message ",   
    IDSTR(WM_NCDESTROY)," This message notifies a window , The non-client area is being destroyed ",   
    IDSTR(WM_NCCALCSIZE)," This message is sent when the size and location of the client area of a window must be calculated ",   
    IDSTR(WM_NCHITTEST)," This message is sent when the user moves, holds down, or releases the mouse in a non-client area ( Hit test ); If the mouse is not captured , The message is sent after the window gets the cursor , Otherwise the message is sent to the window that was captured to the mouse ",   
    IDSTR(WM_NCPAINT)," When window frame ( The client area ) Must be redrawn , The application sends this message to the window ",   
    IDSTR(WM_NCACTIVATE)," This message is sent to a window , Redraws the window when the non-client area of the window is activated ",   
    IDSTR(WM_GETDLGCODE)," Sends this message to a control associated with a dialog program , The system controls the position key and TAB The key causes input to enter the control , The response message application treats it as a special input control and can handle it ",   
    IDSTR(WM_SYNCPAINT)," When avoiding contact with independent GUI When a thread , This message is used to synchronize the refresh , The message is sent as determined by the system ",   
    IDSTR(WM_NCMOUSEMOVE)," When the cursor moves in a window's non-client area , Send this message to the window ",   
    IDSTR(WM_NCLBUTTONDOWN)," Press the left mouse button while the cursor is in the non-client area of a window , This message is sent ",   
    IDSTR(WM_NCLBUTTONUP)," When the user releases the left mouse button while the cursor is in a non-client area of a window , This message is sent ",   
    IDSTR(WM_NCLBUTTONDBLCLK)," When the user double-clicks the left mouse button and the cursor is in a non-client area of a window , This message is sent ",   
    IDSTR(WM_NCRBUTTONDOWN)," When the user presses the right mouse button and the cursor is in a non-client area of a window , This message is sent ",   
    IDSTR(WM_NCRBUTTONUP)," When the user releases the right mouse button while the cursor is in a window's non-client area , This message is sent ",   
    IDSTR(WM_NCRBUTTONDBLCLK)," When the user double-clicks the right mouse button and the cursor is in the non-client area of a window , This message is sent ",   
    IDSTR(WM_NCMBUTTONDOWN)," When the user presses the middle mouse button and the cursor is in a non-client area of a window , This message is sent ",   
    IDSTR(WM_NCMBUTTONUP)," When the user releases the middle mouse button while the cursor is in a window's non-client area , This message is sent ",   
    IDSTR(WM_NCMBUTTONDBLCLK)," When the user double-clicks the middle mouse button and the cursor is in a non-client area of a window , This message is sent ",   
    //Scroll bar message & NBSP; & have spent & have spent < br / >     IDSTR(SBM_SETPOS)," Sets the position of the slider on the scroll bar ",   
    IDSTR(SBM_GETPOS)," Gets the position of the slider on the scroll bar ",   
    IDSTR(SBM_SETRANGE)," Sets the maximum and minimum positions of the scroll bar ",   
    IDSTR(SBM_SETRANGEREDRAW)," Sets the maximum and minimum positions of the scroll bar , Redraw the scroll bar ",   
    IDSTR(SBM_GETRANGE)," Gets the maximum and minimum position values of the scroll bar ",   
    IDSTR(SBM_ENABLE_ARROWS)," Sets the maximum and minimum positions of the scroll bar , Redraw the scroll bar ",   
    IDSTR(SBM_SETSCROLLINFO)," Sets the parameters of the scroll bar , This message passed SCROLLINFO A structure specifies a variety of parameters , Specify which parameters are specified by the structure fMask Members to determine ",   
    IDSTR(SBM_GETSCROLLINFO)," Gets the parameters of the scroll bar , After sending this message , Will be in SCROLLINFO Returns multiple parameters of the control in the structure , Of course, the structure must be set in advance fMask Member to determine exactly what parameters to take ",   
    //Button control message & NBSP; & have spent & have spent < br / >     IDSTR(BM_GETCHECK)," Gets the status of a radio button or check box ",   
    IDSTR(BM_SETCHECK)," Sets the status of radio buttons or check boxes ",   
    IDSTR(BM_GETSTATE)," Determines the status of a radio button or check box ",   
    IDSTR(BM_SETSTATE)," Change the highlight state of the button ",   
    IDSTR(BM_SETSTYLE)," Change the style of the button ",   
    IDSTR(BM_CLICK)," Simulate the user to click the button ",   
    IDSTR(BM_GETIMAGE)," Gets the image handle associated with the button ( Icon or bitmap )",   
    IDSTR(BM_SETIMAGE)," Associate a button with an image ( Icon or bitmap ), note : Button shall be BS_ICON style ",   
    //Button control notification message & NBSP; & have spent & have spent < br / >     IDSTR(BN_CLICKED)," The user clicks the button , The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_DBLCLK)," The user double-clicked the button (BS_OWNERDRAW or BS_RADIOBUTTON style ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_DISABLE)," Button is disabled , The parent window by WM_COMMAND To receive this notification message ",
    IDSTR(BN_DOUBLECLICKED)," The user double-clicked the button ( with BN_DBLCLK with )(BS_OWNERDRAW or BS_RADIOBUTTON style ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_HILITE)," The user to select ( The highlight ) The button ( with BN_PUSHED The same ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_KILLFOCUS)," The button lost keyboard focus ( Button shall be BS_NOTIFY Style to send this message ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_PAINT)," The button should be redrawn , The parent window by WM_COMMAND To receive this notification message ",
    IDSTR(BN_PUSHED)," The user highlights the button ( with BN_HILITE The same ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_SETFOCUS)," The button receives keyboard focus ( Button shall be BS_NOTIFY Style to send this message ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_UNHILITE)," The highlight of the button should be removed ( with BN_UNPUSHED The same ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(BN_UNPUSHED)," The highlight of the button should be removed ( with BN_UNHILITE The same ), The parent window by WM_COMMAND To receive this notification message ",   
    IDSTR(WM_KEYFIRST)," Used for WinCE system , This message is in use GetMessage and PeekMessage When the function , Used to filter keyboard messages ",   
    IDSTR(WM_KEYDOWN)," When a non-system key is pressed (<ALT> The key is not pressed ), This message is sent to the window that has keyboard focus ",   
    IDSTR(WM_KEYUP)," When a non - system key is released and bounced (<ALT> The key is not pressed ), This message is sent to the window that has keyboard focus ",   
    IDSTR(WM_CHAR)," Press a button , And have a WM_KEYDOWN , WM_KEYUP The message , This message contains the character code of the pressed key ",   
    IDSTR(WM_DEADCHAR),"" Dead characters " The message , When using TranslateMessage Translation function WM_KEYUP When the news , Send this message to the window that has keyboard focus , note : On the German keyboard , Some keys just add phonetic symbols to the characters , Does not produce characters , Therefore calls " Dead characters "",   
    IDSTR(WM_SYSKEYDOWN)," When the user holds down <ALT> When you press another key at the same time , Send this message to the window that has focus ",   
    IDSTR(WM_SYSKEYUP)," When the user releases a key <ALT> The key is still pressed , Send this message to the window that has focus ",   
    IDSTR(WM_SYSCHAR)," when WM_SYSKEYDOWN The message is TranslateMessage After function translation , Send this message to the window that has focus , note :<ALT> The key is pressed ",   
    IDSTR(WM_SYSDEADCHAR),"" Dead characters " The message , When using TranslateMessage Translation function WM_SYSKEYDOWN When the news , Send this message to the window that has keyboard focus , note : On the German keyboard , Some keys just add phonetic symbols to the characters , Does not produce characters , Therefore calls " Dead characters "",   
    IDSTR(WM_KEYLAST)," Used for WinCE system , This message is in use GetMessage and PeekMessage When the function , Used to filter keyboard messages ",   
    IDSTR(WM_IME_STARTCOMPOSITION)," When the user starts typing the code , The system immediately sends the message to IME In the ,IME Open the coding window , note : Input method correlation ",   
    IDSTR(WM_IME_ENDCOMPOSITION)," When the code is finished ,IME Send this message , This message is acceptable to the user program , In order to display the user input code itself , note : Input method correlation ",   
    IDSTR(WM_IME_COMPOSITION)," When the user changes the encoding state , Send this message , The application can be called ImmGetCompositionString The function gets the new encoding state ",   
    IDSTR(WM_IME_KEYLAST)," When the user changes the encoding state , Send this message , The application can be called ImmGetCompositionString The function gets the new encoding state ",   
    IDSTR(WM_INITDIALOG)," Sends this message to a dialog program before it is displayed , This message is typically used to initialize the control and perform other tasks ",   
    IDSTR(WM_COMMAND)," The user selects a menu command or a control to send a notification message to its parent window , Or when a shortcut key is translated , This message is sent ",   
    IDSTR(WM_SYSCOMMAND)," The window receives this message when the user selects a system menu command, maximizes or minimizes the user, or restores or closes ",   
    IDSTR(WM_TIMER)," A timer event occurred ",   
    IDSTR(WM_HSCROLL)," When the window's standard horizontal scroll bar generates a scroll event , Send this message to the window ",   
    IDSTR(WM_VSCROLL)," When the window's standard vertical scroll bar generates a scroll event , Send this message to the window ",   
    IDSTR(WM_INITMENU)," This message is sent when a menu will be activated , It occurs when the user clicks a menu item or presses a menu key. It allows programs to change menus before they are displayed ",   
    IDSTR(WM_INITMENUPOPUP)," This message is sent when a drop-down menu or submenu will be activated , It allows the program to change the menu before it displays , Do not change the entire menu ",   
    IDSTR(WM_SYSTIMER)," A message used by the system to notify the cursor to jump ",   
    IDSTR(WM_MENUSELECT)," When the user selects a menu item , Send this message to the owner of the menu ( It's usually a window )",   
    IDSTR(WM_MENUCHAR)," When a menu is active and the user presses a menu character key ( Menu character keys are bracketed and underlined , Different from shortcut keys ), Send this message to the owner of the menu ",   
    IDSTR(WM_ENTERIDLE)," When a modal dialog or menu goes idle , Send this message to its owner , A modal dialog or menu goes idle after one or more previous messages have been processed , No message is waiting in the message queue ",   
    IDSTR(WM_MENURBUTTONUP)," This message allows the program to provide a context-aware menu for a menu item ( Shortcut menu ), To display the context menu for the menu item , Please use the TPM_RECURSE The call TrackPopupMenuEx function ",   
    IDSTR(WM_MENUDRAG)," When the user drags a menu item , Sends this message to the drag-and-drop menu owner , Allows menus to support drag and drop , You can use OLE The drag-and-drop transport protocol initiates the drag-and-drop operation , note : The menu should have MNS_DRAGDROP style ",   
    IDSTR(WM_MENUGETOBJECT)," When the mouse cursor enters or leaves a menu item , This message is sent to the owner of a drag-and-drop menu , Correlation structure :MENUGETOBJECTINFO, note : The menu should have MNS_DRAGDROP style ",   
    IDSTR(WM_UNINITMENUPOPUP)," When a drop-down menu or submenu is destroyed , Send this message ",   
    IDSTR(WM_MENUCOMMAND)," When the user makes a choice on a menu , This message is sent , The menu should have MNS_NOTIFYBYPOS style ( in MENUINFO Set in the structure )",   
    IDSTR(WM_CTLCOLORMSGBOX)," The system sends this message to the owner window of the message box before drawing it , By responding to this message , The owner window can set the text and background color of the message box by using a handle to a given associated display device ",   
    IDSTR(WM_CTLCOLOREDIT)," When an edit box control is about to be drawn , Send this message to its parent window ; By responding to this message , The owner window can set the text and background color of the edit box by using a handle to a given associated display device ",   
    IDSTR(WM_CTLCOLORLISTBOX)," When a listbox control is about to be drawn , Send this message to its parent window ; By responding to this message , The owner window can set the text and background color of the list box by using a handle to a given associated display device ",   
    IDSTR(WM_CTLCOLORBTN)," Set the background color of the button ",   
    IDSTR(WM_CTLCOLORDLG)," Sets the background color of the dialog box , Usually in WinnApp The use of SetDialogBkColor function ",   
    IDSTR(WM_CTLCOLORSCROLLBAR)," Sets the background color of the scroll bar ",   
    IDSTR(WM_CTLCOLORSTATIC)," Sets the background color of a static control ",   
    //Combo box control message & NBSP; & have spent & have spent < br / >     IDSTR(CB_GETEDITSEL)," Used to get the starting and ending position of the currently selected string in the edit box subcontrol that the combo box contains , The corresponding function :GetEditSel",   
    IDSTR(CB_LIMITTEXT)," Used to limit the length of the input text for the edit box subcontrol that the combo box contains ",   
    IDSTR(CB_SETEDITSEL)," Use to select a partial string in the edit box subcontrol that the combo box contains , The corresponding function :GetEditSel",   
    IDSTR(CB_ADDSTRING)," Appends a list item to a combo box control ( string )",   
    IDSTR(CB_DELETESTRING)," Deletes the list item specified in the combo box ( string )",   
    IDSTR(CB_DIR)," Used to add a list of file names to the list box control that the combo box control contains ",   
    IDSTR(CB_GETCOUNT)," Returns the total number of items in a list in a combo box control ",   
    IDSTR(CB_GETCURSEL)," Returns the index of the currently selected item ",   
    IDSTR(CB_GETLBTEXT)," Gets the string for the specified list item in the combo box control ",   
    IDSTR(CB_GETLBTEXTLEN)," Returns the length of the string for the specified list item in the combo box control ( Do not include end characters 0)",   
    IDSTR(CB_INSERTSTRING)," Inserts a string at the specified position in the list box subcontrol that the combo box control contains ",   
    IDSTR(CB_RESETCONTENT)," Used to clear all list items from a combo box control ",   
    IDSTR(CB_FINDSTRING)," Finds a matching string based on the given string in the combo box control ( Ignore case )",   
    IDSTR(CB_SELECTSTRING)," Sets the list item matching the specified string as the selected item in the combo box control ",   
    IDSTR(CB_SETCURSEL)," Sets the specified list item as the current selection in the combo box control ",
    IDSTR(CB_SHOWDROPDOWN)," List boxes used to display or close drop-down and drop-down list combo boxes ",   
    IDSTR(CB_GETITEMDATA)," The combo box control has one for each list item 32 Bits of additional data , This message is used to return additional data for the specified list item ",   
    IDSTR(CB_SETITEMDATA)," Used to update the list items specified by the list box that the combo box contains 32 Bit attached data ",   
    IDSTR(CB_GETDROPPEDCONTROLRECT)," Used to take the screen position of the list box in the combo box ",   
    IDSTR(CB_SETITEMHEIGHT)," Specifies the display height of the list item in the combo box ( pixel )",   
    IDSTR(CB_GETITEMHEIGHT)," Returns the height of the specified list item ( pixel )",   
    IDSTR(CB_SETEXTENDEDUI)," Specifies whether the drop-down or drop-down list combo box USES the default or extended interface ",   
    IDSTR(CB_GETEXTENDEDUI)," Returns whether the combo box has an extended interface ",   
    IDSTR(CB_GETDROPPEDSTATE)," To see if the list box in the combo box is visible ",   
    IDSTR(CB_FINDSTRINGEXACT)," Find the string in the combo box , Ignore case , with CB_FINDSTRING different , This message must be the same throughout the string ",   
    IDSTR(CB_SETLOCALE)," Sets the language code that the combo box list item is currently used to sort ",   
    IDSTR(CB_GETLOCALE)," Gets the language code for the current sorting of the combo box list items ",   
    IDSTR(CB_GETTOPINDEX)," Gets the index of the first visible item in the list box in the combo box ",   
    IDSTR(CB_SETTOPINDEX)," Used to set the list item in the specified combo box to the first visible item in the list box ",   
    IDSTR(CB_GETHORIZONTALEXTENT)," Returns the total width of the horizontal scrolling of the combo box ( pixel )( Have a horizontal scroll bar )",   
    IDSTR(CB_SETHORIZONTALEXTENT)," Used to set the width of the list box in the combo box ",   
    IDSTR(CB_GETDROPPEDWIDTH)," Takes the width of the list box in the combo box ( pixel )",   
    IDSTR(CB_SETDROPPEDWIDTH)," Used to set the maximum allowable width of the list box in the combo box ",
    IDSTR(CB_INITSTORAGE)," Only applicable to Win95, When you are about to add a large number of table entries to the list box in the combo box , This message pre-allocates a chunk of memory , Avoid adding a large number of table entries to allocate memory multiple times , To speed up the program ",   
    IDSTR(CB_MSGMAX)," The message also has three message values :0x0162,0x0163,0x0165, Message meaning unknown , Searched the whole Visual Studio 6 The directory also has only its definition , There is no code in use ",   
    //Combo box control notification message & NBSP; & have spent & have spent < br / >     IDSTR(CBN_CLOSEUP)," Notify the parent window ( through WM_COMMAND To learn ), The list box of the combo box is closed ",   
    IDSTR(CBN_DBLCLK)," Notify the parent window ( through WM_COMMAND To learn ), The user double-clicks a string in the combo box ",   
    IDSTR(CBN_DROPDOWN)," Notify the parent window ( through WM_COMMAND To learn ), The list box for the combo box pops up ",   
    IDSTR(CBN_EDITCHANGE)," Notify the parent window ( through WM_COMMAND To learn ), The user modifies the text in the edit box that the combo box contains ",   
    IDSTR(CBN_EDITUPDATE)," Notify the parent window ( through WM_COMMAND To learn ), The text in the edit box contained in the combo box is about to be updated ",   
    IDSTR(CBN_ERRSPACE)," Notify the parent window ( through WM_COMMAND To learn ), The combo box is out of memory ",   
    IDSTR(CBN_KILLFOCUS)," Notify the parent window ( through WM_COMMAND To learn ), Combo box loses input focus ",   
    IDSTR(CBN_SELCHANGE)," Notify the parent window ( through WM_COMMAND To learn ), An item in the combo box was selected ",   
    IDSTR(CBN_SELENDCANCEL)," Notify the parent window ( through WM_COMMAND To learn ), The user's selection of combo boxes should be canceled ",   
    IDSTR(CBN_SELENDOK)," Notify the parent window ( through WM_COMMAND To learn ), The user's choice of combo boxes is legal ",   
    IDSTR(CBN_SETFOCUS)," Notify the parent window ( through WM_COMMAND To learn ), The combo box gets the input focus ",   
    //List box control message & NBSP; & have spent & have spent < br / >     IDSTR(LB_ADDSTRING)," Adds a string to the list box ",   
    IDSTR(LB_INSERTSTRING)," Inserts an entry data or string into the list box. Don't like LB_ADDSTRING The message , The message will not be activated LBS_SORT Style to sort the entries ",   
    IDSTR(LB_DELETESTRING)," Deletes a string from the list box ",   
    IDSTR(LB_SELITEMRANGEEX)," Select one or more consecutive entries in the list box in the multi-select state ",   
    IDSTR(LB_RESETCONTENT)," Clear all list items from the list box ",   
    IDSTR(LB_SETSEL)," Select a string from the list box in the multi-select state ",   
    IDSTR(LB_SETCURSEL)," Select a string in the list box , And scroll the entry into view , And highlight the newly selected string ",   
    IDSTR(LB_GETSEL)," Gets the selected status of an entry in the list box ",   
    IDSTR(LB_GETCURSEL)," Gets the index of the currently selected item in the list box. Only works in the list box in the radio state ",   
    IDSTR(LB_GETTEXT)," Get a string from the list box ",   
    IDSTR(LB_GETTEXTLEN)," Gets the length of a string in a list box ",   
    IDSTR(LB_GETCOUNT)," Gets the number of items in the list box ",   
    IDSTR(LB_SELECTSTRING)," Only applicable to single select list boxes , Sets the list item that matches the specified string as the selected item , Scrolls the list box to make the selection visible ",   
    IDSTR(LB_DIR)," List file names in the list box ",   
    IDSTR(LB_GETTOPINDEX)," Returns the index of the first visible item in the list box ",   
    IDSTR(LB_FINDSTRING)," Find the matching string in the list box ( Ignore case )",   
    IDSTR(LB_GETSELCOUNT)," Only for multiple select list boxes , This message is used to return the number of options ",   
    IDSTR(LB_GETSELITEMS)," Only for multiple select list boxes , This message is used to get the number and location of selected items ",   
    IDSTR(LB_SETTABSTOPS)," Sets the cursor of the list box ( Input focus ) Number of stations and index order table ",
    IDSTR(LB_GETHORIZONTALEXTENT)," Returns the scrollable width of the list box ( pixel )",
    IDSTR(LB_SETHORIZONTALEXTENT)," This message sets the scrolling width of the list box ",   
    IDSTR(LB_SETCOLUMNWIDTH)," Specifies the number of columns for the list box ",   
    IDSTR(LB_ADDFILE)," Add a file name to the list box ",   
    IDSTR(LB_SETTOPINDEX)," Used for the list box to set the specified list item in the list box to the first visible item in the list box , Will scroll the list box to the appropriate position ",   
    IDSTR(LB_GETITEMRECT)," Used in the client area of the list box to get the list item RECT",   
    IDSTR(LB_GETITEMDATA)," Each list item in the list box has one 32 Bit attached data , This message is used to return additional data for the specified list item ",   
    IDSTR(LB_SETITEMDATA)," To update the list item specified in the list box 32 Bit attached data ",
    IDSTR(LB_SELITEMRANGE)," Only for multiple select list boxes , Used to make a list item in a specified range check or drop ",   
    IDSTR(LB_SETANCHORINDEX)," Used in the list box to set the last selected table item by the mouse to the specified table item ",   
    IDSTR(LB_GETANCHORINDEX)," Index for the last mouse-selected item in the list box ",   
    IDSTR(LB_SETCARETINDEX)," Used in the list box to set the keyboard input focus to the specified table item ",
    IDSTR(LB_GETCARETINDEX)," Used to return an item index with rectangular focus in the list box ",
    IDSTR(LB_SETITEMHEIGHT)," Used to specify the display height of a list item in a list box ",   
    IDSTR(LB_GETITEMHEIGHT)," Used in the list box to return the height of an item in the list box ( pixel )",   
    IDSTR(LB_FINDSTRINGEXACT)," Used to find strings in a list box ( Ignore case ), with LB_FINDSTRING different , This message must be the same throughout the string ",   
    IDSTR(LB_SETLOCALE)," Used to set the language code in the list box where the list items are currently being sorted , When users use LB_ADDSTRING Adds a record to the list box in the combo box , And use LBS_SORT When styles are reordered , The language code must be used ",   
    IDSTR(LB_GETLOCALE)," Used to get the language code in the list box for the list items currently being sorted , When users use LB_ADDSTRING Adds a record to the list box in the combo box , And use LBS_SORT When styles are reordered , The language code must be used ",   
    IDSTR(LB_SETCOUNT)," Used to set the number of table entries in the list box ",   
    IDSTR(LB_INITSTORAGE)," Only applicable to Win95 version , When you are about to add a large number of table entries to the list box , This message pre-allocates a chunk of memory , To avoid allocating memory again and again in subsequent operations ",
    IDSTR(LB_ITEMFROMPOINT)," Used in the list box to get the item index closest to the specified point ",
    IDSTR(LB_MSGMAX)," The message also has three message values :0x01B0,0x01B1,0x01B3,, Message meaning unknown , Searched the whole Visual Studio 6 The directory also has only its definition , There is no code in use ",   
    //List box control notification message & NBSP; & have spent & have spent < br / >     IDSTR(LBN_DBLCLK)," Notify the parent window ( through WM_COMMAND To learn ), The user double-clicks an item in the list box ",   
    IDSTR(LBN_ERRSPACE)," Notify the parent window ( through WM_COMMAND To learn ), The list box is out of memory ",
    IDSTR(LBN_KILLFOCUS)," Notify the parent window ( through WM_COMMAND To learn ), The list box is losing focus ",   
    IDSTR(LBN_SELCANCEL)," Notify the parent window ( through WM_COMMAND To learn ), Selection canceled ",   
    IDSTR(LBN_SELCHANGE)," Notify the parent window ( through WM_COMMAND To learn ), Select another item in the list box ",   
    IDSTR(LBN_SETFOCUS)," Notify the parent window ( through WM_COMMAND To learn ), The list box gets the input focus ",
    IDSTR(WM_MOUSEFIRST)," Occurs when the mouse moves ( with WM_MOUSEMOVE equivalent ), Often used to determine the range of mouse messages , Such as :if(message >= WM_MOUSEFIRST)&&(message <= WM_MOUSELAST)",   
    IDSTR(WM_MOUSEMOVE)," Move the mouse ",   
    IDSTR(WM_LBUTTONDOWN)," Press the left mouse button ",   
    IDSTR(WM_LBUTTONUP)," Release the left mouse button ",   
    IDSTR(WM_LBUTTONDBLCLK)," Double-click the left mouse button ",   
    IDSTR(WM_RBUTTONDOWN)," Press the right mouse button ",   
    IDSTR(WM_RBUTTONUP)," Release the right mouse button ",   
    IDSTR(WM_RBUTTONDBLCLK)," Double click ",   
    IDSTR(WM_MBUTTONDOWN)," Press the middle mouse button ",   
    IDSTR(WM_MBUTTONUP)," Release the middle mouse button ",   
    IDSTR(WM_MBUTTONDBLCLK)," Double click the middle mouse button ",   
    IDSTR(WM_MOUSEWHEEL)," When the mouse wheel turns , Sends this message to the control that currently has focus ",   
    IDSTR(WM_MOUSELAST),"WM_MBUTTONDBLCLK The alias , This is often used to determine the scope of a mouse message , The counterpart is WM_MOUSEFIRST, For example, :if(message > =  WM_MOUSEFIRST)&&(message <= WM_MOUSELAST)",   
    IDSTR(WM_PARENTNOTIFY)," when MDI Child Windows are created or destroyed , Or when the user presses the mouse key and the cursor is on the child window , Send this message to its parent window ",   
    IDSTR(WM_ENTERMENULOOP)," This message is sent to inform the application that the main window has entered menu loop mode ",   
    IDSTR(WM_EXITMENULOOP)," This message is sent to inform the application that the main window has exited the menu loop mode ",   
    IDSTR(WM_NEXTMENU)," When using the left arrow cursor key or the right arrow cursor key to switch between the menu bar and the system menu , This message is sent to the application , Correlation structure :MDINEXTMENU",   
    IDSTR(WM_SIZING)," When the user is resizing the window , Send this message to the window ; This message application allows you to monitor the window size and location , They can also be modified ",   
    IDSTR(WM_CAPTURECHANGED)," When it loses the captured mouse , Send this message to the window ",
    IDSTR(WM_MOVING)," This message is sent when the user moves the window , Use this message application to monitor the window size and location , They can also be modified ",   
    IDSTR(WM_POWERBROADCAST)," This message is sent to the application to inform it of the power management event , For example, this message is sent during standby sleep ",   
    IDSTR(WM_DEVICECHANGE)," When the device's hardware configuration changes , Send this message to the application or device driver ",   
    IDSTR(WM_MDICREATE)," Send this message to the client window of the multi-document application to create one MDI Child window ",   
    IDSTR(WM_MDIDESTROY)," Send this message to the client window of the multi-document application to close one MDI Child window ",   
    IDSTR(WM_MDIACTIVATE)," This message is sent to the client window of the multi-document application to inform the client window to activate another MDI Child window , When the client window receives this message , It emits WM_MDIACTIVE A message to MDI Child window ( inactive ) To activate it ",   
    IDSTR(WM_MDIRESTORE)," Send this message to MDI The client window , Return the child window to its original size from maximum to minimum ",   
    IDSTR(WM_MDINEXT)," Send this message to MDI The client window , Activate the next or previous window ",
    IDSTR(WM_MDIMAXIMIZE)," Send this message to MDI Client window to maximize one MDI Child window ",   
    IDSTR(WM_MDITILE)," Send this message to MDI The client window , Rearrange everything in a tiled manner MDI Child window ",   
    IDSTR(WM_MDICASCADE)," Send this message to MDI The client window , Rearrange everything in a cascading fashion MDI Child window ",   
    IDSTR(WM_MDIICONARRANGE)," Send this message to MDI The client window rearranges all minimized MDI Child window ",   
    IDSTR(WM_MDIGETACTIVE)," Send this message to MDI Client window to find the active child window handle ",   
    IDSTR(WM_MDISETMENU)," Send this message to MDI The client window , with MDI The menu replaces the menu of the child window ",   
    IDSTR(WM_ENTERSIZEMOVE)," When a window enters a move or resize mode loop , This message is sent to the window ",   
    IDSTR(WM_EXITSIZEMOVE)," Determines when the user changes the window size or position ",   
    IDSTR(WM_DROPFILES)," Mouse drag and drop , This message is sent when the drop event occurs , Such as : Drag and drop file function ",   
    IDSTR(WM_MDIREFRESHMENU)," Send this message to the client window of the multi-document application , Based on the current MDI Child window update MDI Menu for frame window ",   
    //0x0235   
    //......   
    //0x0280   
    IDSTR(WM_IME_SETCONTEXT)," When the window of the application is activated , The system will send to the application WM_IME_SETCONTEXT The message , note : Input method correlation ",   
    IDSTR(WM_IME_NOTIFY)," You can use WM_IME_NOTIFY Message to inform about IME Regular changes to window state , note : Input method correlation ",   
    IDSTR(WM_IME_CONTROL)," You can use WM_IME_CONTROL Message to change the position of the composition window , note : Input method correlation ",   
    IDSTR(WM_IME_COMPOSITIONFULL)," User interface window cannot increase the size of the encoding window ,IME The user interface window will be sent WM_IME_COMPOSITIONFULL The message , Don't deal with , note : Input method correlation ",   
    IDSTR(WM_IME_SELECT)," System generated WM_IME_SELECT In order to select a new one IME The input method , note : Input method correlation ",   
    IDSTR(WM_IME_CHAR)," When the input method is turned on for text input , Will send WM_IME_CHAR The message ",
    IDSTR(WM_IME_REQUEST)," When an application requests an input method , Triggers this message to be sent ",   
    IDSTR(WM_IME_KEYDOWN)," When pressing the key in the input method record window , Triggers this message to be sent ",   
    IDSTR(WM_IME_KEYUP)," When the key is released in the input record window , Triggers this message to be sent ",
    IDSTR(WM_MOUSEHOVER)," When the mouse moves over the control , Triggers this message to be sent ",   
    IDSTR(WM_MOUSELEAVE)," When the mouse moves away from the control , Triggers this message to be sent ",   
    IDSTR(WM_CUT)," The application sends this message to an edit box or combo box to delete the currently selected text ",   
    IDSTR(WM_COPY)," The application sends this message to an edit box or combo box , In order to use CF_TEXT Format copies the currently selected text to the clipboard ",   
    IDSTR(WM_PASTE)," The application sends this message to the edit box or combo box , To get data from the clipboard ",   
    IDSTR(WM_CLEAR)," The application sends this message to the edit box or combo box , To clear the currently selected content ",   
    IDSTR(WM_UNDO)," The application sends this message to the edit box or combo box , To undo the last operation ",   
    IDSTR(WM_RENDERFORMAT)," When the application requires system clipboard data , Triggers this message to be sent ",   
    IDSTR(WM_RENDERALLFORMATS)," Application exits when the program exits , The system sends the message to the current program , All forms of clipboard data are required , Avoid causing data loss ",   
    IDSTR(WM_DESTROYCLIPBOARD)," When calling EmptyClipboard When the function , Send this message to the clipboard owner ",   
    IDSTR(WM_DRAWCLIPBOARD)," When the contents of the clipboard change , Sends this message to the first window of the clipboard's observation chain ; It allows the clipboard view window to display the new contents of the clipboard ",   
    IDSTR(WM_PAINTCLIPBOARD)," When the clipboard is contained CF_OWNERDIPLAY Formatted data , And the client area of the clipboard view window needs to be redrawn , Triggers this message to be sent ",   
    IDSTR(WM_VSCROLLCLIPBOARD)," When the vertical scroll bar of the clipboard viewer is clicked , Triggers this message to be sent ",   
    IDSTR(WM_SIZECLIPBOARD)," When the clipboard is contained CF_OWNERDIPLAY Formatted data , And the clipboard observes when the size of the client area of the window has changed , This message is sent to the clipboard owner through the clipboard view window ",   
    IDSTR(WM_ASKCBFORMATNAME)," Send this message to the clipboard owner through the clipboard view window , To request a CF_OWNERDISPLAY Format the name of the clipboard ",   
    IDSTR(WM_CHANGECBCHAIN)," When a window is removed from the clipboard view chain , Sends this message to the first window of the clipboard's observation chain ",   
    IDSTR(WM_HSCROLLCLIPBOARD)," This message is sent to the clipboard owner through a clipboard view window , It occurs when the clipboard contains CFOWNERDISPALY Formatted data , And there is an event on the horizontal scroll bar of the clipboard view window , The owner should scroll the clipboard image and update the value of the scroll bar ",   
    IDSTR(WM_QUERYNEWPALETTE)," This message is sent to the window that will receive focus , This message gives the window the opportunity to implement a logical palette when it receives focus ",   
    IDSTR(WM_PALETTEISCHANGING)," When an application is about to implement its logical palette , This message notifies all applications ",   
    IDSTR(WM_PALETTECHANGED)," This message implements its logical palette in a focused window , Send this message to all top-level and overlapping Windows , To change the system palette ",   
    IDSTR(WM_HOTKEY)," When the user presses by RegisterHotKey The hotkey () function registers a hotkey , Send this message ",   
    IDSTR(WM_PRINT)," Sends this message to a window requesting to draw itself in the specified device context , Available for window screenshots , But when you take a screenshot of the child control, you get a black block as large as the child control ",   
    IDSTR(WM_PRINTCLIENT)," Sends this message to a window requesting that its client area be drawn in the specified device context ( Most commonly in the context of a printer device )",   
    IDSTR(WM_HANDHELDFIRST)," Message meaning unknown , Searched the whole Visual Studio 6 The directory also has only its definition , There is no code in use ",   
    IDSTR(WM_HANDHELDLAST)," Message meaning unknown , Searched the whole Visual Studio 6 The directory also has only its definition , There is no code in use ",   
    IDSTR(WM_AFXFIRST)," Specify the first AFX The message (MFC)",   
    IDSTR(WM_QUERYAFXWNDPROC)," The message is MFC Internal to confirm that the window procedure is in use AfxWndProc",   
    IDSTR(WM_SIZEPARENT),"MFC Custom messages ,MFC The main window frame layout is by sending a response to a child window WM_SIZEPARENT To complete the , Frame window is used to send this message SendMessage, Each control child window is used OnSizeParent The response WM_SIZEPARENT The message ",   
    IDSTR(WM_IDLEUPDATECMDUI),"MFC Self - defined and used messages , When the application enters the idle processing state , This message will be sent , Causes the state handler for all toolbar user objects to be called , To change its state , The corresponding message response function is :OnIdleUpdateCmdUI",   
    IDSTR(WM_INITIALUPDATE),"MFC News of invention , Used to handle menus, shortcuts , send WM_INITIALUPDATE Message to all child Windows , The message response function is :CView::OnInitialUpdate",   
    IDSTR(WM_COMMANDHELP)," This message is used for the implementation MFC Context sensitive help , Press the <F1 key > After the message is mapped to CWinApp::OnHelp . This function sends the message to the outermost frame window , This message response process is top-down , The corresponding message response function is :ON_WM_HELPINFO",
    IDSTR(WM_HELPHITTEST)," This message is used for the implementation MFC Context sensitive help , This message must be added manually ",   
    IDSTR(WM_EXITHELPMODE)," This message is used for the implementation MFC Context sensitive help , This message must be added manually ",   
    IDSTR(WM_RECALCPARENT),"MFC Self - defined and used messages , The corresponding message response function is :CMainFrame::OnReCalcParent, This message by CView Sent to the CMainFrame Frame window to rearrange the window ",   
    IDSTR(WM_SIZECHILD),"MFC Self - defined and used messages , When the user readjusts COleResizeBar The size , by COleResizeBar To its owner window ),",   
    IDSTR(WM_KICKIDLE)," This message is MFC , an unpublished message that handles idle , The message pump does not process WM_KICKIDLE The message , After receiving the message , Direct return ,WM_KICKIDLE Is used to stimulate the execution of idle processing , It is prompted as an empty message ::GetMessage() return ",   
    IDSTR(WM_QUERYCENTERWND),"MFC Internal retention of unpublished information ,lParam:HWND to use as centering parent;",   
    IDSTR(WM_DISABLEMODAL),"MFC Internal retention of unpublished information ,lResult = 0,disable during modal state;lResult = 1,don't disable",   
    IDSTR(WM_FLOATSTATUS),"MFC Internal retention of unpublished information ,wParam combination of FS_* flags below",   
    IDSTR(WM_ACTIVATETOPLEVEL),"MFC Internal retention of unpublished information ,wParam = nState(like WM_ACTIVATE);lParam = pointer to HWND[2];lParam[0] = hWnd getting WM_ACTIVATE;lParam[1] = hWndOther",   
    IDSTR(WM_QUERY3DCONTROLS),"MFC Internal retention of unpublished information ,lResult != 0 if 3D controls wanted",   
    IDSTR(WM_RESERVED_0370),"MFC Internal reservations not disclosed, MFC Message that is not used by itself ",   
 &nb

Related articles: