Jump to content

PMGuide - Message Processing

From EDM2

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

Presentation Manager Programming Guide and Reference
  1. How to Use this Book
  2. Device Functions
  3. Direct Manipulation Functions
  4. Dynamic Data Formatting Functions
  5. Hooks and Procedures
  6. Profile Functions
  7. Spooler Functions
  8. Window Functions
  9. Message Processing
  10. Data Types
  11. Errors
  12. Atom Tables
  13. Button Controls
  14. Clipboards
  15. Combination Box
  16. Container Controls
  17. Control Windows
  18. Cursors
  19. Dialog Windows
  20. Direct Manipulation
  21. Drawing in Windows
  22. Dynamic Data Exchange
  23. Entry-Field Controls
  24. File Dialog Controls
  25. Font Dialog Controls
  26. Frame Windows
  27. Hooks
  28. Initialization Files
  29. Keyboard Accelerators
  30. List-Box Controls
  31. Menus
  32. Messages and Message Queues
  33. Multiple-Line Entry Field Controls
  34. Mouse and Keyboard Input
  35. Mouse Pointers and Icons
  36. Notebook Controls
  37. Painting and Drawing
  38. Presentation Parameters
  39. Resource Files
  40. Scroll-Bar Controls
  41. Slider Controls
  42. Spin Button Controls
  43. Static Controls
  44. Title-Bar Controls
  45. Value Set Controls
  46. Windows
  47. Window Classes
  48. Window Procedures
  49. Window Timers
  50. Appendices
  51. Notices
  52. Glossary

Messages are processed by window and dialog procedures.

Every window has a window procedure. Windows can also be combined into standard windows or dialog boxes. These are special cases of groups of windows that also have their own procedures. A window or dialog procedure must be capable of processing any message. This can be achieved by delegating some message types to the default window, or dialog, procedures by use of the WinDefWindowProc and WinDefDlgProc functions respectively.

Control windows are a special type of child windows. They take the form of objects such as buttons, scroll bars, list boxes, and text entry fields. These child windows process mouse and keyboard input and notify its owner of significant input events. Procedures for these child window controls are inside the Presentation Manager and are often called system-provided window procedures.

All messages have the same form as QMSG. structure.

Message Types

There are two types of window procedure message processing:

  • Default window and dialog procedure message processing
  • Control window message processing.

These types are described in Default Window and Dialog Procedure Message Processing and Control Window Message Processing. The messages are described in the message groups found on the Contents.

Default Window and Dialog Procedure Message Processing

These window procedures provide default processing for application window procedures:

  • Default window and dialog procedure
  • Language support window and dialog procedures, which are used if the application specifies a null window procedure
  • Default AVIO window procedure.

These messages are described in Default Window Procedure Message Processing. The system-provided window procedures take no action on messages that are not defined in this chapter, and return NULL.

Control Window Message Processing

Controls are predefined classes of child windows that any application can use for input and output. These control classes are predefined:

WC_BUTTON

Consists of buttons and boxes that the operator can select by clicking the pointing device or using the keyboard. These messages are described in Button Control Window Processing. WC_CIRCULARSLIDER

Consists of a visual component whose specific purpose is to allow a user to set, display, or modify a value by moving the slider arm around the circular slider dial. Messages are described in Circular Slider Control Window Messages.

WC_COMBOBOX

Consists of an entry field control and a list box control merged into a single control. The list, which is usually limited in size, is displayed below the entry field and offset one dialog box unit to its right. These messages are described in Combination-Box Control Window Processing.

WC_CONTAINER

Consists of a visual component whose specific purpose is to hold objects such as executable programs, word processing files, graphics images, and database records. Messages are described in Container Control Window Processing.

WC_ENTRYFIELD

Consists of a single line of text that the operator can edit. These messages are described in Entry Field Control Window Processing.

WC_FRAME

Consists of a composite window. These messages are described in Frame Control Window Processing.

WC_LISTBOX

Presents a list of text items from which the operator can make selections. These messages are described in List Box Control Window Processing.

WC_MENU

Presents a list of items, which may be text displayed horizontally as action bars or vertically as pull-down menus. Menus are usually used to provide a command interface to applications. These messages are described in Menu Control Window Processing.

WC_MLE

Consists of a rectangular window that displays multiple lines of text that the operator can edit. When it has the focus, the cursor marks the current insertion or replacement point. These messages are described in Multi-Line Entry Field Control Window Processing.

WC_NOTEBOOK

Consists of a visual component whose specific purpose is to organize information on individual pages so that a user can find and display that information quickly and easily. Messages are described in Notebook Control Window Processing.

WC_SCROLLBAR

Consists of window scroll bars that allow the operator to make a request to scroll the contents of an associated window. These messages are described in Scroll Bar Control Window Processing.

WC_SLIDER

Consists of a visual component whose specific purpose is to allow a user to set, display, or modify a value by moving the slider arm along the slider shaft. Messages are described in Slider Control Window Processing. WC_SPINBUTTON

Presents a scrollable ring of choices from which the operator can select. These messages are described in Spin Button Control Window Processing.

WC_STATIC

Consists of simple display items that do not respond to keyboard or pointing device events. These messages are described in Static Control Window Processing.

WC_TITLEBAR

Displays the window title or caption and allows the operator to move its owner. These messages are described in Title Bar Control Window Processing.

WC_VALUESET

Consists of a visual component whose specific purpose is to allow a user to select one choice from a group of mutually exclusive choices. A value set can use graphical images (bit maps or icons), as well as colors, text, and numbers, to represent the items that a user can select. Messages are described in Value Set Control Window Processing.

Owner-Notification Messages

Controls are useful because they notify their owners when significant events take place. A control notifies its owner by sending a WM_CONTROL message or by posting a WM_COMMAND or WM_HELP message.

WM_CONTROL
WM_COMMAND

Param2 contains information that indicates the source of the WM_COMMAND message:

CMDSRC_PUSHBUTTON
Posted by a pushbutton control
CMDSRC_MENU
Posted by a menu control
CMDSRC_ACCELERATOR
Posted by WinTranslateAccel
CMDSRC_FONTDLG
Posted by a font dialog.
CMDSRC_OTHER
Other source.
WM_HELP

Param1 contains information that indicates the source of the WM_HELP message:

CMDSRC_PUSHBUTTON
Posted by a pushbutton control
CMDSRC_MENU
Posted by a menu control
CMDSRC_ACCELERATOR
Posted by WinTranslateAccel
CMDSRC_OTHER
Other source.

Notation Conventions

Each message description contains:

Name

The message name; a 2-byte identity unique to a message.

Some message identity values are reserved for the use of the operating system, some are available for use by an application. See Reserved Messages under Default Window Procedure Message Processing.

For all messages, the first two or three characters of the name indicate the type of window that is related to the message; for example:

LM

List box control

SBM

Scroll bar control.

Cause

The principal reason that caused the generation of the message.

Parameters

Input and output parameters pertinent to the message.

There are always two parameters (param1 and param2) and one return value. Any or all of the parameters can be NULL.

Remarks

An explanation of the relationship between the parameters in the context of the message and an indication of the expected processing of the message.

Default

A definition of how the default window procedures (provided by the system) process the message.

Note: A message is not equivalent to a call of the same name.

Button Control Window Processing

This system-provided window procedure processes the actions on a button control (WC_BUTTON).

For information on button control data see BTNCDATA.

Purpose

A button control is a small rectangular child window representing a button that the operator can "switch" on or off. Button controls can be used alone or in groups, and can either be labeled or appear without text. Button controls typically change appearance when the operator clicks a pointing device on them or pressing the space bar when the button has the keyboard focus.

Buttons can be disabled to prevent them from responding when the operator clicks on them. Disabled buttons are displayed using a different emphasis technique (for example, color or half-toning).

Button Control Styles

These button control styles are available:

BS_AUTOCHECKBOX

An automatic check box automatically toggles its state whenever the user clicks on it.

BS_AUTORADIOBUTTON

When clicked, an automatic radio button automatically checks itself and unchecks all other radio buttons in the same group.

BS_AUTOSIZE

Buttons with this style are sized automatically to make sure the contents fit.

If BS_AUTOSIZE is selected when the button is created, and a -1 is specified for either the parameter of WinCreateWindow, (or when creating the button as a resource) then the button's optimal size is calculated to display the its contents.

BS_AUTO3STATE

An automatic three-state check box automatically toggles its state when the user clicks on it.

BS_BITMAP

Places a bit map instead of text on the push button control. This style works only with the BS_PUSHBUTTON.

BS_CHECKBOX
A check box is a small square with a character string to the right. If it is checked, a small black box appears inside the small square. When the box or string is clicked, by clicking on it with the pointing device or pressing the keyboard spacebar when it is active,
BS_DEFAULT

A BS_DEFAULT pushbutton is one with a thick border box. It has the same properties as a pushbutton. In addition, the user may press a BS_DEFAULT pushbutton by pressing the RETURN or ENTER key. The intention is the same for user-buttons, but the appearance of a BS_DEFAULT userbutton is application defined.

This style can be ORed with the BS_PUSHBUTTON and BS_USERBUTTON styles:

BS_HELP

The button posts a WM_HELP message rather than a WM_COMMAND message.

This style can be ORed with the BS_PUSHBUTTON style.

If both BS_HELP and BS_SYSCOMMAND are set, BS_HELP takes precedence.

BS_ICON

Places an icon instead of text on the push button control. This style works only with the BS_PUSHBUTTON style.

BS_MINIICON

This enables miniicons (half the size of normal icons) to be placed on the push button control.

BS_NOBORDER

The pushbutton is displayed without a border drawn around it. There is no other change in the pushbutton's operation.

This style can be ORed with the BS_PUSHBUTTON style.

BS_NOCURSORSELECT

The radio button does not select itself when given the focus as the result of an arrow key or tab key.

This style can be ORed with the BS_AUTORADIOBUTTON style.

BS_NOPOINTERFOCUS

Buttons with this style do not set the focus to themselves when clicked with the pointing device. This enables the cursor to stay on a control for which information is required, rather than moving to the button. This style has no effect on keyboard interaction. The tab key can still be used as usual to move the focus to the button.

This style can be ORed with any of the basic button styles.

BS_NOTEBOOKBUTTON

A notebook button is identical to a pushbutton except that when it is created as a child of a notebook page it becomes a button in the common button area of the notebook page. If the button is not in a notebook page it will be indistinguishable from a pushbutton.

BS_PUSHBUTTON

A pushbutton is a box that contains a string. When a button is pushed, by clicking the pointing device on it or pressing the spacebar when it is active, the parent window is notified. BS_RADIOBUTTON

A radio button is similar to a check box, but is typically used in groups in which only one button at a time is checked. When a radio button is clicked or a cursor key is pressed to move within the group, it notifies its owner window. It is then up to the owner window to check the clicked radio button and uncheck all the rest, if necessary.

BS_SYSCOMMAND

The button posts a WM_SYSCOMMAND message rather than a WM_COMMAND message.

This style can be ORed with the BS_PUSHBUTTON style.

If both BS_HELP and BS_SYSCOMMAND are set, BS_HELP takes

BS_TEXT

This enables both text and a bitmap, icon, or miniicon to be placed on the push button control. This style works only with the BS_PUSHBUTTON style, and should be used in conjunction with BS_BITMAP, BS_ICON or BS_MINIICON.

BS_USERBUTTON

This is an application-definable button. The owner window of this style control receives the additional button style BN_PAINT.

BS_3STATE

A three-state check box is identical to a check box control except that its check box can be half-toned as well as the box being checked or unchecked.

When BS_ICON, BS_MINIICON or BS_BITMAP is selected, the image can be activated by specifying the image ID with the button text string. For instance, to load an icon (#define ICON_ID 300), and display it within a button, the button string is set to "#300."

When BS_ICON, BS_MINIICON or BS_BITMAP is selected along with BS_TEXT, the image can still be activated by specifying the following with a zero-terminated text string. format:

   "#<image-id>\t<text>"

where:

   <image-id>
       resource id of the icon, miniicon or bitmap \t
       tab character <text>
       zero-terminated button text string 

For example, to load an icon (#define ICON_ID 300) and display it with the button text "My Button," the button string is set to "#300\tMy Button." Notice the "\t" is used to separate the text from the image-id. The image is displayed above the text within the button.

Default Colors

The following system colors are used when the system draws button controls:

   SYSCLR_BUTTONDEFAULT
   SYSCLR_BUTTONLIGHT
   SYSCLR_BUTTONMIDDLE
   SYSCLR_MENUTEXT
   SYSCLR_WINDOW
   SYSCLR_WINDOWFRAME. 

Some of these defaults can be replaced by using the following presentation parameters in the application resource script file or source code:

   PP_BACKGROUNDCOLOR PP_BORDERCOLOR
   PP_DISABLEDFOREGROUNDCOLOR
   PP_FOREGROUNDCOLOR
   PP_HILITEFOREGROUNDCOLOR.

Button Control Notification Messages

These messages are initiated by the button control window to notify its owner of significant events.

  • WM_COMMAND (in Button Controls)
  • WM_CONTROL (in Button Controls)
  • WM_HELP (in Button Controls)
  • WM_SYSCOMMAND

Button Control Window Messages

  • BM_AUTOSIZE
  • BM_CLICK
  • BM_QUERYCHECK
  • BM_QUERYCHECKINDEX
  • BM_QUERYHILITE
  • BM_SETCHECK
  • BM_SETDEFAULT
  • BM_SETHILITE
  • WM_ENABLE (in Button Controls)
  • WM_MATCHMNEMONIC (in Button Controls)
  • WM_QUERYCONVERTPOS (in Button Controls)
  • WM_QUERYWINDOWPARAMS (in Button Controls)
  • WM_SETWINDOWPARAMS (in Button Controls)

Circular Slider Control Window Messages

The system-provided window procedure processes the actions on a circular control (WC_CIRCULARSLIDER).

Purpose

The circular slider control supports values set in analog rather than digital form. This control is intended to emulate the actual controls of stereo and video components.

The circular slider can be used instead of a linear slider. While, at present, there are no particular guidelines as to when a circular slider should replace a linear slider, the circular slider consumes less space on the screen and, therefore, is practical to represent several controls in the same window. For example, for an audio attributes dialog that has volume, balance, bass, and treble controls, you might want to use a linear slider for the volume control (since it is used frequently); but to conserve space and give a more familiar appearance, the circular slider could be used for the balance, bass, and treble.

Circular Slider Control Styles

These circular slider control styles are available:

CSS_CIRCULARVALUE

Draws a circular thumb, rather than a line, for the value indicator.

CSS_MIDPOINT

Makes the mid-point tick mark larger.

CSS_NOBUTTON

Does not display value buttons.

CSS_NONUMBER

Does not display the value on the dial.

CSS_NOTEXT

Does not display title text under the dial.

CSS_POINTSELECT

Permits the values on the circular slider to change immediately when dragged.

Direct manipulation is performed by using a mouse to click on and drag the circular slider. There are two modes of direct manipulation for the circular slider.

The default direct manipulation mode is to scroll to the value indicated by the position of the mouse. This could be important if you used a circular slider for a volume control, for example. Increasing the volume from 0% to 100% too quickly could result in damage to both the user's ears and the equipment.

The other mode of direct manipulation permits the value on the circular slider to change immediately when dragged. This mode is enabled using the CSS_POINTSELECT style bit. When this style is used, the value of the dial can be changed by tracking the value with the mouse, which changes values quickly.

CSS_PROPORTIONALTICKS

Allow the length of the tick marks to be calculated as a percentage of the radius.

CSS_360

Permits the scroll range to extend 360 degrees.

CSS_360 forces the CSS_NONUMBER style on. This is necessary to keep the value indicator from corrupting the number value.

Circular Slider Control Data

See CSBITMAPDATA.

Default Colors

The following system colors are used when the system draws circular slider controls:

   SYSCLR_BACKGROUNDCOLOR
   SYSCLR_FOREGROUNDCOLOR 

Some of these defaults can be replaced by using the following presentation parameters in the application resource script file or source code:

   PP_BACKGROUNDCOLOR PP_BORDERCOLOR

Circular Slider Control Notification Messages

These messages are initiated by the circular slider control window to notify its owner of significant events.

  • WM_CONTROL (in Circular Slider Controls)
  • WM_CONTROLPOINTER (in Circular Slider Controls)

Circular Slider Control Window Messages

This section describes the Circular Slider Control Window Procedure actions on receiving the following messages.

  • CSM_QUERYINCREMENT
  • CSM_QUERYRADIUS
  • CSM_QUERYRANGE
  • CSM_QUERYVALUE
  • CSM_SETBITMAPDATA
  • CSM_SETINCREMENT
  • CSM_SETRANGE
  • CSM_SETVALUE
  • WM_CHAR (in Circular Slider Controls)
  • WM_PRESPARAMCHANGED (in Circular Slider Controls)
  • WM_QUERYWINDOWPARAMS (in Circular Slider Controls)
  • WM_SETWINDOWPARAMS (in Circular Slider Controls)

Clipboard Message Processing

The clipboard is used by the end-user to transfer data between Presentation Manager* (PM*) applications using the following operations:

Cut
Remove from a window, leaving a gap in the source, and save for later use.
Copy
Copy from a window, leaving the source intact, and save for later use.
Paste

Paste the cut or copied data into the window of an application (the target).

Clipboard Messages

This section contains the messages used by the Clipboard.

  • WM_DESTROYCLIPBOARD
  • WM_DRAWCLIPBOARD
  • WM_HSCROLLCLIPBOARD
  • WM_PAINTCLIPBOARD
  • WM_RENDERALLFMTS
  • WM_RENDERFMT
  • WM_SIZECLIPBOARD
  • WM_VSCROLLCLIPBOARD

Combination-Box Control Window Processing

This system-provided window procedure processes the actions on a prompted entry field (combination-box) control (WC_COMBOBOX).

Purpose

A combination-box consists of an entry field control and a list box control merged into a single control. The list, which is usually limited in size, is displayed below the entry field, and offset one dialog-box unit to its right.

When the combination-box control has the focus, the text in the entry field is given selected emphasis and, if the list box control has a matching entry, it is scrolled to show that match at the top of the list.

A combination-box, while sometimes only showing the entryfield, also owns the area occupied by the invisible list box. Another window can and will be clipped to it if they have clipping flags set.

Combination Box Control Styles

These combination-box control styles are available:

CBS_SIMPLE

Both the entry field control and the list box control are visible. When the selection changes in the list box control, the text of the selected item in the list box control is placed in the entry field. Also, the text in the entry field is completed by extending the text of the entry field with the closest match from the list box.

CBS_DROPDOWN

Inherits all the properties of a combination-box control with a style of CBS_SIMPLE and, in addition, the list box control is hidden until the user requests that it should be displayed.

CBS_DROPDOWNLIST

In which the entry field control is replaced by a static control, that displays the current selection from the list box control. The user must explicitly cause the display of the list box control in order to make alternative selections in the list box.

Default Colors

The following system colors are used when the system draws combination-box controls:

   SYSCLR_WINDOWFRAME
   SYSCLR_ENTRYFIELD
   SYSCLR_WINDOW
   SYSCLR_BUTTONMIDDLE
   SYSCLR_BUTTONDARK
   SYSCLR_BUTTONLIGHT
   SYSCLR_OUTPUTTEXT
   SYSCLR_WINDOWTEXT
   SYSCLR_HIGHLITEFOREGROUND
   SYSCLR_HIGHLITEBACKGROUND
   SYSCLR_FIELDBACKRGOUND
   SYSCLR_WINDOWFRAME. 

Some of these defaults can be replaced by using the following presentation parameters in the application resource script file or source code:

   PP_FOREGROUNDCOLOR PP_DISABLEDFOREGROUNDCOLOR
   PP_HIGHLIGHTFOREGROUNDCOLOR
   PP_FONTNAMESIZE
   PP_BORDERCOLOR.

Combo Box Control Notification Messages

The combo box control uses most of the same window messages as the entry field control and the list box control to notify its owner of significant events.

  • WM_CONTROL (in Combination Boxes)

Combo Box Control Window Messages

The combo box control uses most of the same messages as the entry field control and the list box control. In particular, the following messages are supported to achieve the functions of a combo box. These messages are explained in detail in the entry field control window messages and the list box control window messages sections.

WM_SETWINDOWPARAMS (in Entry Fields)
       To set the text of the entry field.
WM_QUERYWINDOWPARAMS (in Entry Fields)
       To obtain the text of the entry field. 
LM_QUERYITEMCOUNT
       To obtain the count of items in the list box control. 
LM_INSERTITEM
       To insert an item into the list box control. 
LM_SETTOPINDEX
       To scroll the list box control so that the specified item is at the top. 
LM_QUERYTOPINDEX
       To obtain the index of the item at the top of the list box control. 
LM_DELETEITEM
       To delete an item from the list box control. If necessary, this also changes the content of the entry field to the item at the top of the list box control. 
LM_SELECTITEM
       To select a specified item in the list box control. Also, this changes the content of the entry field to the item at the top of the list box control and, if the list box control is not visible, causes the list box control to 'dropdown' below the entry field control. 
LM_QUERYSELECTION
       To obtain the current selection in the list box control. 
LM_SETITEMTEXT
       To change the text of an item in the list box control. If necessary, this also changes the content of the entry field control. 
LM_QUERYITEMTEXT
       To obtain the text of an item in the list box control. 
LM_QUERYITEMTEXTLENGTH
       To obtain the length of the text of an item in the list box control. 
LM_SEARCHSTRING
       To obtain the index of an item in the list box control containing a specified string. 
LM_DELETEALL
       To delete all the items in the list box control. 
WM_ENABLE
       To enable the combo box control to respond to input. 
EM_QUERYFIRSTCHAR
       To obtain the character displayed at the left edge of the entry field control. 
EM_SETFIRSTCHAR
       To scroll the entry field control so that the specified character is displayed at the left edge of the entry field control. 
EM_QUERYCHANGED
       To obtain the changes to the entry field control. 
EM_QUERYSEL
       To obtain the current selection of the entry field control. 
EM_SETSEL
       To set the current selection of the entry field control. 
EM_SETTEXTLIMIT
       To set the maximum number of characters to be contained in the entry field control. 
EM_CUT
       To place the contents of the selection of the entry field control into the clipboard and then delete those contents from the entry field control. 
EM_PASTE
       To place the contents of the clipboard into the entry field control. 
EM_COPY
       To place the contents of the selection of the entry field control into the clipboard. 
EM_CLEAR
       To clear the current selection of the entry field control.
  • CBM_HILITE
  • CBM_ISLISTSHOWING
  • CBM_SHOWLIST

Container Control Window Processing

This system-provided window procedure processes the actions on a container control (WC_CONTAINER).

Purpose

A container control is a visual component whose specific purpose is to hold objects. These objects, or container items, can be anything that either your application or a user might store in a container. Examples are executable programs, word processing files, graphics images, and database records.

Container item data is stored in RECORDCORE or MINIRECORDCORE data structures. Both the application and the container have access to the data stored in these records.

Note: If the CCS_MINIRECORDCORE style bit is specified when a container is created, then MINIRECORDCORE should be used instead of RECORDCORE and PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data structures and messages.

The maximum number of records is limited by the amount of memory in the user's computer. The container control does not limit the number of records that a container can have.

The following list shows which types of data can be displayed for each container view. Refer to the description of the container control in the OS/2 Programming Guide for more information about the types of views.

View Types

Data

Icon view

Icons or bit maps with text strings beneath

Grid view

Icons or bit maps arranged in grid squares

Name view

Icons or bit maps with text strings to the right

Text view

Text strings

Tree view

Icons or bit maps, and text strings

Details view

Icons or bit maps, text strings, numbers, times, and dates.

Direct editing of container item text is supported in all views, including blank text fields.

The container control is designed according to the Common User Access (CUA) guidelines. For example, the CUA direct manipulation protocol is fully supported, enabling a user to visually drag an object in a container window and drop it on another object or container window. In addition, the container control supports CUA-defined selection types and techniques for selecting container items, as well as selection mechanisms, such as pointing devices and the keyboard, and multiple forms of emphasis. For a complete description of CUA containers, refer to the SAA CUA Guide to User Interface Design and to the SAA CUA Advanced Interface Design Reference.

The container control automatically provides or enables either horizontal or vertical scroll bars, or both, whenever all or part of one or more container items are not visible in a container window's client area.

Container Control Window Words

The container control reserves 4 bytes in its window words for application use. This memory can be accessed using the WinSetWindowULong and WinQueryWindowULong functions at offset QWL_USER.

Container Control Styles and Selection Types

Containers are WC_CONTAINER class windows that have the following CCS_container styles and selection types. Container control styles and selection types are specified when the container control is created.

Container Control Styles

The following list defines container style bits that your application can use. These style bits must be set by your application.

CCS_AUTOPOSITION
Automatic positioning, which causes container items displayed in the icon view to be arranged when any of the following occur:
  • The window size changes
  • Container items are inserted, removed, sorted, invalidated, or filtered
  • The font or font size changes
  • The window title text changes.
In all of these cases, container items are arranged the same as when the CM_ARRANGE message is sent. The CCS_AUTOPOSITION style bit is valid only when it is used with the icon view (CV_ICON).
CCS_MINIRECORDCORE
A record style bit that causes the container to interpret all container records as being smaller than they would otherwise be. If a CM_ALLOCRECORD message is received, all records are interpreted and allocated according to the information in the MINIRECORDCORE data structure instead of the RECORDCORE data structure, which is used if this style bit is not specified.
CCS_READONLY
A read-only style bit for an entire container, which prevents a user from editing any of the text in a container window. If you do not set this style bit, a user can edit any of the text in a container window unless you set the following read-only attributes in the appropriate data structures:
CA_TITLEREADONLY
Sets the container title to read-only. This is an attribute of the CNRINFO data structure's flWindowAttr field.
CRA_RECORDREADONLY
Sets text fields in records to read-only. This is an attribute of the RECORDCORE and MINIRECORDCORE data structures' flRecordAttr field.
Note: If the CCS_MINIRECORDCORE style bit is specified when a container is created, the MINIRECORDCORE should be used instead of RECORDCORE and PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data structures and messages.
CFA_FIREADONLY
Sets column data to read-only. This is an attribute of the FIELDINFO data structure's flData field.
CFA_FITITLEREADONLY
Sets column headings to read-only. This is an attribute of the FIELDINFO data structure's flTitle field.
CCS_VERIFYPOINTERS
A pointer verification style bit, which verifies that the application pointers are members of the container's linked list before they are used. If it is not set, the container does not verify the pointers.

Notes: The CCS_VERIFYPOINTERS style bit does not verify the validity of a pointer. It only verifies whether a pointer is a member of a container's linked list.

After your code has been developed and tested, you may want to remove the CCS_VERIFYPOINTERS style bit in order to improve the container's performance. Otherwise, the container will attempt to verify all pointers, which will slow its response to actions that users perform.

Container Control Selection Types

If a selection type is not specified, single selection is the default. For the tree view, single selection is the only type supported. Refer to the description of the selection types in the SAA CUA Advanced Interface Design Reference for more information.

CCS_SINGLESEL
Single selection, which allows a user to select only one container item at a time. Each time a user selects a container item, the selection of any other container item is cancelled.
CCS_EXTENDSEL
Extended selection, which allows a user to select one or more container items. A user can select one item, a range of items, or multiple ranges of items.
CCS_MULTIPLESEL
Multiple selection, which allows a user to select zero or more container items.

Container Control Data

See the following for information on the container control data structures:

   CDATE
   CNRDRAGINFO
   CNRDRAGINIT
   CNRDRAWITEMINFO
   CNREDITDATA
   CNRINFO
   CTIME
   FIELDINFO
   FIELDINFOINSERT
   GRIDINFO
   GRIDSQUARE
   MINIRECORDCORE
   NOTIFYDELTA
   NOTIFYRECORDEMPHASIS
   NOTIFYRECORDENTER
   NOTIFYSCROLL
   OWNERBACKGROUND
   QUERYRECFROMRECT
   QUERYRECORDRECT
   RECORDCORE
   RECORDINSERT
   SEARCHSTRING
   TREEITEMDESC. 

Container Control Notification Messages

These messages are initiated by the container control window to notify its owner of significant events.

  • WM_CONTROL (in Container Controls)
  • WM_CONTROLPOINTER (in Container Controls)
  • WM_DRAWITEM (in Container Controls)

Container Control Notification Codes

The following WM_CONTROL (in Container Controls) notification codes are sent by the container control to its owner.

   CN_BEGINEDIT
   CN_COLLAPSETREE
   CN_CONTEXTMENU
   CN_DRAGAFTER
   CN_DRAGLEAVE
   CN_DRAGOVER
   CN_DROP
   CN_DROPNOTIFY
   CN_DROPHELP
   CN_EMPHASIS
   CN_ENDEDIT
   CN_ENTER
   CN_EXPANDTREE
   CN_GRIDRESIZED
   CN_HELP
   CN_INITDRAG
   CN_KILLFOCUS
   CN_PICKUP
   CN_QUERYDELTA
   CN_REALLOCPSZ
   CN_SCROLL
   CN_SETFOCUS

Container Control Window Messages

This section describes the container control window procedure actions on receiving the following messages.

   CM_ALLOCDETAILFIELDINFO
   CM_ALLOCRECORD
   CM_ARRANGE
   CM_CLOSEEDIT
   CM_COLLAPSETREE
   CM_ERASERECORD
   CM_EXPANDTREE
   CM_FILTER
   CM_FREEDETAILFIELDINFO
   CM_FREERECORD
   CM_HORZSCROLLSPLITWINDOW
   CM_INSERTDETAILFIELDINFO
   CM_INSERTRECORD
   CM_INSERTRECORDARRAY
   CM_INVALIDATEDETAILFIELDINFO
   CM_INVALIDATERECORD
   CM_MOVETREE
   CM_OPENEDIT
   CM_PAINTBACKGROUND
   CM_QUERYCNRINFO
   CM_QUERYDETAILFIELDINFO
   CM_QUERYDRAGIMAGE
   CM_QUERYGRIDINFO
   CM_QUERYRECORD
   CM_QUERYRECORDEMPHASIS
   CM_QUERYRECORDFROMRECT
   CM_QUERYRECORDINFO
   CM_QUERYRECORDRECT
   CM_QUERYVIEWPORTRECT
   CM_REMOVEDETAILFIELDINFO
   CM_REMOVERECORD
   CM_SCROLLWINDOW
   CM_SEARCHSTRING
   CM_SETCNRINFO
   CM_SETGRIDINFO
   CM_SETRECORDEMPHASIS
   CM_SETTEXTVISIBILITY
   CM_SNAPTOGRID
   CM_SORTRECORD
   WM_PICKUP
   WM_PRESPARAMCHANGED (in Container Controls)

Default Dialog Processing

This section describes how messages are processed by the default dialog procedure. The default dialog procedure can be called using WinDefDlgProc. A user dialog procedure should make this call for all messages that it does not want to process.

For WM_* messages other than those specified in this section the Default Dialog Procedure takes the same action and sets result to the same value as in Frame Control Window Processing. In the instance of messages that would be sent to FID_CLIENT, they are passed to the default window procedure.

For any other messages the default window procedure takes no action, other than to set reply to NULL.

Default Dialog Messages

This section describes the default dialog procedure actions on receiving the following messages.

  • WM_CHAR (Default Dialogs)
  • WM_CLOSE (Default Dialogs)
  • WM_COMMAND (Default Dialogs)
  • WM_INITDLG (Default Dialogs)
  • WM_MATCHMNEMONIC (Default Dialogs)
  • WM_QUERYDLGCODE

Default File Dialog Processing

This section describes how messages are processed by the default dialog procedure of the file dialog. This standard dialog can be used to provide a common, consistent file selection function.

The file dialog's default procedure can be called using the WinDefFileDlgProc function. A user-provided subclassing dialog procedure should make this call for all messages that it does not process when using the file dialog.

The default dialog procedure of the file dialog sends the messages listed in this section to itself to perform the requested action. This design allows a user-provided dialog procedure to customize the file dialog to its own needs.

File Dialog Messages

This section describes the file dialog procedure actions on receiving the following messages.

  • FDM_ERROR
  • FDM_FILTER
  • FDM_VALIDATE

Default Font Dialog Processing

This section describes how messages are processed by the default dialog procedure of the font dialog. This standard dialog can be used to provide a common, consistent font selection function.

The font dialog's default procedure can be called using the WinDefFontDlgProc function. A user-provided subclassing dialog procedure should make this call for all messages that it does not process when using the font dialog.

The default dialog procedure of the font dialog sends the messages listed in this section to itself to perform the requested action. This design allows a user-provided dialog procedure to customize the font dialog to its own needs.

Font Dialog Messages

This section describes the font dialog procedure actions on receiving the following messages.

   WM_DRAWITEM (in Font Dialog)
   FNTM_FACENAMECHANGED
   FNTM_FILTERLIST
   FNTM_POINTSIZECHANGED
   FNTM_STYLECHANGED
   FNTM_UPDATEPREVIEW

Direct Manipulation (Drag) Message Processing

This section describes the processing that occurs during a direct manipulation operation when the application sends or receives a direct manipulation (DM_*) message.

Direct Manipulation Messages

This section describes messages that an application may send or receive during a direct manipulation operation.

   DM_DISCARDOBJECT
   DM_DRAGERROR
   DM_DRAGFILECOMPLETE
   DM_DRAGLEAVE
   DM_DRAGOVER
   DM_DRAGOVERNOTIFY
   DM_DROP
   DM_DROPHELP
   DM_DROPNOTIFY
   DM_EMPHASIZETARGET
   DM_ENDCONVERSATION
   DM_FILERENDERED
   DM_PRINTOBJECT
   DM_RENDER
   DM_RENDERCOMPLETE
   DM_RENDERFILE
   DM_RENDERPREPARE 

Dynamic Data Exchange Messages

This section describes the message part of the DDE protocol, which is a set of guidelines that allows two applications to share data freely between one another; not necessarily driven directly by user input.

Note: DDE operates between two specific applications, each of which must be aware of the other, and active.

WinDdeInitiate, WinDdePostMsg, and WinDdeRespond are the functions associated with these messages.

Dynamic Data Exchange Messages

This section describes the dynamic data exchange protocol actions on the following messages.

   WM_DDE_ACK
   WM_DDE_ADVISE
   WM_DDE_DATA
   WM_DDE_EXECUTE
   WM_DDE_INITIATE
   WM_DDE_INITIATEACK
   WM_DDE_POKE
   WM_DDE_REQUEST
   WM_DDE_TERMINATE
   WM_DDE_UNADVISE

Entry Field Control Window Processing

Entry Field Control Styles

Default Colors

Entry Field Control Notification Messages

   WM_CONTROL (in Entry Fields)

Entry Field Control Window Messages

   EM_CLEAR
   EM_COPY
   EM_CUT
   EM_PASTE
   EM_QUERYCHANGED
   EM_QUERYFIRSTCHAR
   EM_QUERYREADONLY
   EM_QUERYSEL
   EM_SETFIRSTCHAR
   EM_SETINSERTMODE
   EM_SETREADONLY
   EM_SETSEL
   EM_SETTEXTLIMIT
   WM_CHAR (in Entry Fields)
   WM_QUERYCONVERTPOS (in Entry Fields)
   WM_QUERYWINDOWPARAMS (in Entry Fields)
   WM_SETWINDOWPARAMS (in Entry Fields)

Frame Control Window Processing

Frame Creation Flags

Frame Control Styles

Default Colors

Frame Control Notification Messages

   WM_MINMAXFRAME (in Frame Controls)

Frame Control Window Messages

   WM_ACTIVATE (in Frame Controls)
   WM_ADJUSTFRAMEPOS
   WM_BUTTON1DBLCLK (in Frame Controls)
   WM_BUTTON2DBLCLK (in Frame Controls)
   WM_BUTTON1DOWN (in Frame Controls)
   WM_BUTTON2DOWN (in Frame Controls)
   WM_BUTTON1UP (in Frame Controls)
   WM_BUTTON2UP (in Frame Controls)
   WM_CALCFRAMERECT (in Frame Controls)
   WM_CHAR (in Frame Controls)
   WM_CLOSE (in Frame Controls)
   WM_COMMAND
   WM_DRAWITEM (in Frame Controls)
   WM_ERASEBACKGROUND
   WM_FLASHWINDOW
   WM_FOCUSCHANGE (in Frame Controls)
   WM_FORMATFRAME (in Frame Controls)
   WM_INITMENU (in Frame Controls)
   WM_MEASUREITEM (in Frame Controls)
   WM_MENUSELECT (in Frame Controls)
   WM_NEXTMENU (in Frame Controls)
   WM_OWNERPOSCHANGE
   WM_PAINT (in Frame Controls)
   WM_QUERYBORDERSIZE
   WM_QUERYCONVERTPOS (in Frame Controls)
   WM_QUERYFOCUSCHAIN
   WM_QUERYFRAMECTLCOUNT
   WM_QUERYFRAMEINFO
   WM_QUERYICON
   WM_QUERYWINDOWPARAMS (in Frame Controls)
   WM_SETBORDERSIZE
   WM_SETICON
   WM_SETWINDOWPARAMS (in Frame Controls)
   WM_SIZE (in Frame Controls)
   WM_SYSCOMMAND
   WM_TRACKFRAME (in Frame Controls)
   WM_TRANSLATEACCEL (in Frame Controls)
   WM_TRANSLATEMNEMONIC (in Frame Controls)
   WM_UPDATEFRAME (in Frame Controls)

Help Manager Message Processing

Help Manager messages

   HM_ACTIONBAR_COMMAND
   HM_CONTROL
   HM_CREATE_HELP_TABLE
   HM_DISMISS_WINDOW
   HM_DISPLAY_HELP
   HM_ERROR
   HM_EXT_HELP
   HM_EXT_HELP_UNDEFINED
   HM_GENERAL_HELP
   HM_GENERAL_HELP_UNDEFINED
   HM_HELP_CONTENTS
   HM_HELP_INDEX
   HM_HELPSUBITEM_NOT_FOUND
   HM_INFORM
   HM_INVALIDATE_DDF_DATA
   HM_KEYS_HELP
   HM_LOAD_HELP_TABLE
   HM_NOTIFY
   HM_QUERY
   HM_QUERY_DDF_DATA
   HM_QUERY_KEYS_HELP
   HM_REPLACE_HELP_FOR_HELP
   HM_REPLACE_USING_HELP
   HM_SET_ACTIVE_WINDOW
   HM_SET_COVERPAGE_SIZE
   HM_SET_HELP_LIBRARY_NAME
   HM_SET_HELP_WINDOW_TITLE
   HM_SET_OBJCOM_WINDOW
   HM_SET_SHOW_PANEL_ID
   HM_SET_USERDATA
   HM_TUTORIAL
   HM_UPDATE_OBJCOM_WINDOW_CHAIN

Language Support Dialog Processing

Language Support Dialog Messages

   WM_ACTIVATE (Language Support Dialog)
   WM_CONTROL (Language Support Dialog)
   WM_PAINT (Language Support Dialog)
   WM_PPAINT (Language Support Dialog)
   WM_SETFOCUS (Language Support Dialog)
   WM_SIZE (Language Support Dialog)
   WM_SYSCOLORCHANGE (Language Support Dialog)

Language Support Window Processing

Language Support Window Messages

   WM_ACTIVATE (Language Support Window)
   WM_CONTROL (Language Support Window)
   WM_PAINT (Langauge Support Window)
   WM_PPAINT (Language Support Window)
   WM_SETFOCUS (Language Support Window)
   WM_SIZE (Language Support Window)
   WM_SYSCOLORCHANGE (Language Support Window)

List Box Control Window Processing

Default Colors

List Box Control Notification Messages

   WM_CONTROL (in List Boxes)
   WM_DRAWITEM (in List Boxes)
   WM_MEASUREITEM (in List Boxes)

List Box Control Window Messages

   LM_DELETEALL
   LM_DELETEITEM
   LM_INSERTITEM
   LM_INSERTMULTITEMS
   LM_QUERYITEMCOUNT
   LM_QUERYITEMHANDLE
   LM_QUERYITEMTEXT
   LM_QUERYITEMTEXTLENGTH
   LM_QUERYSELECTION
   LM_QUERYTOPINDEX
   LM_SEARCHSTRING
   LM_SELECTITEM
   LM_SETITEMHANDLE
   LM_SETITEMHEIGHT
   LM_SETITEMTEXT
   LM_SETITEMWIDTH
   LM_SETTOPINDEX
   WM_CHAR (in List Boxes)
   WM_QUERYCONVERTPOS (in List Boxes)
   WM_QUERYWINDOWPARAMS (in List Boxes)
   WM_SETWINDOWPARAMS (in List Boxes)

Menu Control Window Processing

Menu Control Styles

Menu Item Styles

Menu Item Attributes

Default Colors

Menu Control Notification Messages

   WM_COMMAND (in Menu Controls)
   WM_DRAWITEM (in Menu Controls)
   WM_HELP (in Menu Controls)
   WM_INITMENU (in Menu Controls)
   WM_MEASUREITEM (in Menu Controls)
   WM_MENUEND (in Menu Controls)
   WM_MENUSELECT (in Menu Controls)
   WM_NEXTMENU (in Menu Controls)

Menu Control Window Messages

   MM_DELETEITEM
   MM_ENDMENUMODE
   MM_INSERTITEM
   MM_ISITEMVALID
   MM_ITEMIDFROMPOSITION
   MM_ITEMPOSITIONFROMID
   MM_QUERYDEFAULTITEMID
   MM_QUERYITEM
   MM_QUERYITEMATTR
   MM_QUERYITEMCOUNT
   MM_QUERYITEMRECT
   MM_QUERYITEMTEXT
   MM_QUERYITEMTEXTLENGTH
   MM_QUERYSELITEMID
   MM_REMOVEITEM
   MM_SELECTITEM
   MM_SETDEFAULTITEMID
   MM_SETITEM
   MM_SETITEMATTR
   MM_SETITEMHANDLE
   MM_SETITEMTEXT
   MM_STARTMENUMODE
   WM_QUERYCONVERTPOS (in Menu Controls)
   WM_QUERYWINDOWPARAMS (in Menu Controls)
   WM_SETWINDOWPARAMS (in Menu Controls)
   WM_SYSCOMMAND

Multi-Line Entry Field Control Window Processing

Multi-Line Entry Field Control Styles

Multi-Line Entry Field Control Notification Messages

   WM_CONTROL (in Multiline Entry Fields)

Multi-Line Entry Field Window Messages

   MLM_CHARFROMLINE
   MLM_CLEAR
   MLM_COPY
   MLM_CUT
   MLM_DELETE
   MLM_DISABLEREFRESH
   MLM_ENABLEREFRESH
   MLM_EXPORT
   MLM_FORMAT
   MLM_IMPORT
   MLM_INSERT
   MLM_LINEFROMCHAR
   MLM_PASTE
   MLM_QUERYBACKCOLOR
   MLM_QUERYCHANGED
   MLM_QUERYFIRSTCHAR
   MLM_QUERYFONT
   MLM_QUERYFORMATLINELENGTH
   MLM_QUERYFORMATRECT
   MLM_QUERYFORMATTEXTLENGTH
   MLM_QUERYIMPORTEXPORT
   MLM_QUERYLINECOUNT
   MLM_QUERYLINELENGTH
   MLM_QUERYREADONLY
   MLM_QUERYSEL
   MLM_QUERYSELTEXT
   MLM_QUERYTABSTOP
   MLM_QUERYTEXTCOLOR
   MLM_QUERYTEXTLENGTH
   MLM_QUERYTEXTLIMIT
   MLM_QUERYUNDO
   MLM_QUERYWRAP
   MLM_RESETUNDO
   MLM_SEARCH
   MLM_SETBACKCOLOR
   MLM_SETCHANGED
   MLM_SETFIRSTCHAR
   MLM_SETFONT
   MLM_SETFORMATRECT
   MLM_SETIMPORTEXPORT
   MLM_SETREADONLY
   MLM_SETSEL
   MLM_SETTABSTOP
   MLM_SETTEXTCOLOR
   MLM_SETTEXTLIMIT
   MLM_SETWRAP
   MLM_UNDO
   WM_BUTTON1DBLCLK (in Multiline Entry Fields)
   WM_BUTTON1DOWN (in Multiline Entry Fields)
   WM_BUTTON1UP (in Multiline Entry Fields)
   WM_CHAR (in Multiline Entry Fields)
   WM_ENABLE (in Multiline Entry Fields)
   WM_MOUSEMOVE (in Mulitline Entry Fields)
   WM_QUERYWINDOWPARAMS (in Multiline Entry Fields)
   WM_SETWINDOWPARAMS (in Multiline Entry Fields)

Notebook Control Window Processing

   Old Notebook Control Styles
   New Notebook Control Styles
   Notebook Control Data
   Notebook Control Notification Messages
   WM_CONTROL (in Notebook Controls)
   WM_CONTROLPOINTER (in Notebook Controls)
   WM_DRAWITEM (in Notebook Controls)
   Notebook Control Window Messages
   BKM_CALCPAGERECT
   BKM_DELETEPAGE
   BKM_INSERTPAGE
   BKM_INVALIDATETABS
   BKM_QUERYPAGECOUNT
   BKM_QUERYPAGEDATA
   BKM_QUERYPAGEID
   BKM_QUERYPAGEINFO
   BKM_QUERYPAGESTYLE
   BKM_QUERYPAGEWINDOWHWND
   BKM_QUERYSTATUSLINETEXT
   BKM_QUERYTABBITMAP
   BKM_QUERYTABTEXT
   BKM_SETDIMENSIONS
   BKM_SETNOTEBOOKBUTTONS
   BKM_SETNOTEBOOKCOLORS
   BKM_SETPAGEDATA
   BKM_SETPAGEINFO
   BKM_SETPAGEWINDOWHWND
   BKM_SETSTATUSLINETEXT
   BKM_SETTABBITMAP
   BKM_SETTABCOLOR
   BKM_SETTABTEXT
   BKM_TURNTOPAGE
   WM_CHAR (in Notebook Controls)
   WM_PRESPARAMCHANGED (in Notebook Controls)
   WM_SIZE (in Notebook Controls) 

Scroll Bar Control Window Processing

Scroll Bar Control Styles

Default Colors

Scroll Bar System Values

Scroll Bar Control Notification Messages

   WM_HSCROLL (in Horizontal Scroll Bars)
   WM_VSCROLL (in Vertical Scroll Bars)

Scroll Bar Control Window Messages

   SBM_QUERYPOS
   SBM_QUERYRANGE
   SBM_SETPOS
   SBM_SETSCROLLBAR
   SBM_SETTHUMBSIZE
   WM_QUERYCONVERTPOS (in Scroll Bars)
   WM_QUERYWINDOWPARAMS (in Scroll Bars)
   WM_SETWINDOWPARAMS (in Scroll Bars)

Slider Control Window Processing

Slider Control Styles

Slider Control Data

Slider Control Notification Messages

   WM_CONTROL (in Slider Controls)
   WM_CONTROLPOINTER (in Slider Controls)
   WM_DRAWITEM (in Slider Controls)

Slider Control Window Messages

   SLM_ADDDETENT
   SLM_QUERYDETENTPOS
   SLM_QUERYSCALETEXT
   SLM_QUERYSLIDERINFO
   SLM_QUERYTICKPOS
   SLM_QUERYTICKSIZE
   SLM_REMOVEDETENT
   SLM_SETSCALETEXT
   SLM_SETSLIDERINFO
   SLM_SETTICKSIZE
   WM_CHAR (in Slider Controls)
   WM_PRESPARAMCHANGED (in Slider Controls)
   WM_QUERYWINDOWPARAMS (in Slider Controls)
   WM_SETWINDOWPARAMS (in Slider Controls)

Spin Button Control Window Processing

Spin Button Control Styles

Spin Button Control Data

Spin Button Control Notification Message

   WM_CONTROL (in Spin Button Controls)

Spin Button Control Window Messages

   SPBM_OVERRIDESETLIMITS
   SPBM_QUERYLIMITS
   SPBM_QUERYVALUE
   SPBM_SETARRAY
   SPBM_SETCURRENTVALUE
   SPBM_SETLIMITS
   SPBM_SETMASTER
   SPBM_SETTEXTLIMIT
   SPBM_SPINDOWN
   SPBM_SPINUP

Static Control Window Processing

Static Control Styles

Default Colors

Static Control Notification Messages

Static Control Window Messages

   SM_QUERYHANDLE
   SM_SETHANDLE
   WM_MATCHMNEMONIC (in Static Controls)
   WM_QUERYCONVERTPOS (in Static Controls)
   WM_QUERYWINDOWPARAMS (in Static Controls)
   WM_SETWINDOWPARAMS (in Static Controls)

Title Bar Control Window Processing

Title Bar Control Notification Messages

   WM_SYSCOMMAND (in Title Bar Controls)
   WM_TRACKFRAME (in Title Bar Controls

Title Bar Control Window Messages

   TBM_QUERYHILITE
   TBM_SETHILITE
   WM_QUERYCONVERTPOS (in Title Bar Controls)
   WM_QUERYWINDOWPARAMS (in Title Bars)
   WM_SETWINDOWPARAMS (in Title Bar Controls)

Value Set Control Window Processing

Value Set Control Styles

Value Set Control Data

Value Set Control Notification Messages

   WM_CONTROL (in Value Set Controls)
   WM_CONTROLPOINTER (in Value Set Controls)
   WM_DRAWITEM (in Value Set Controls)

Value Set Control Window Messages

   VM_QUERYITEM
   VM_QUERYITEMATTR
   VM_QUERYMETRICS
   VM_QUERYSELECTEDITEM
   VM_SELECTITEM
   VM_SETITEM
   VM_SETITEMATTR
   VM_SETMETRICS
   WM_CHAR (in Value Set Controls)
   WM_PRESPARAMCHANGED (in Value Set Controls)
   WM_QUERYWINDOWPARAMS (in Value Set Controls)
   WM_SETWINDOWPARAMS (in Value Set Controls)
   WM_SIZE (in Value Set Controls)

Default Window Procedure Message Processing

Window Class Styles

Window Styles

General Window Messages

   PL_ALTERED
   WM_ACTIVATE
   WM_APPTERMINATENOTIFY
   WM_ADJUSTWINDOWPOS
   WM_BEGINDRAG
   WM_BEGINSELECT
   WM_BUTTON1CLICK
   WM_BUTTON1DBLCLK
   WM_BUTTON1DOWN
   WM_BUTTON1MOTIONEND
   WM_BUTTON1MOTIONSTART
   WM_BUTTON1UP
   WM_BUTTON2CLICK
   WM_BUTTON2DBLCLK
   WM_BUTTON2DOWN
   WM_BUTTON2MOTIONEND
   WM_BUTTON2MOTIONSTART
   WM_BUTTON2UP
   WM_BUTTON3CLICK
   WM_BUTTON3DBLCLK
   WM_BUTTON3DOWN
   WM_BUTTON3MOTIONEND
   WM_BUTTON3MOTIONSTART
   WM_BUTTON3UP
   WM_CALCFRAMERECT
   WM_CALCVALIDRECTS
   WM_CHAR
   WM_CHORD
   WM_CLOSE
   WM_COMMAND
   WM_CONTEXTMENU
   WM_CONTROL
   WM_CONTROLPOINTER
   WM_CREATE
   WM_CTLCOLORCHANGE
   WM_DESTROY
   WM_DRAWITEM
   WM_ENABLE
   WM_ENDDRAG
   WM_ENDSELECT
   WM_ERROR
   WM_FOCUSCHANGE
   WM_FORMATFRAME
   WM_HELP
   WM_HITTEST
   WM_HSCROLL
   WM_INITDLG
   WM_INITMENU
   WM_JOURNALNOTIFY
   WM_MATCHMNEMONIC
   WM_MEASUREITEM
   WM_MENUEND
   WM_MENUSELECT
   WM_MINMAXFRAME
   WM_MOUSEMAP
   WM_MOUSEMOVE
   WM_MOVE
   WM_MSGBOXDISMISS
   WM_MSGBOXINIT
   WM_NEXTMENU
   WM_NULL
   WM_OPEN
   WM_PACTIVATE
   WM_PAINT
   WM_PCONTROL
   WM_PPAINT
   WM_PRESPARAMCHANGED
   WM_PSETFOCUS
   WM_PSIZE
   WM_PSYSCOLORCHANGE
   WM_QUERYACCELTABLE
   WM_QUERYCONVERTPOS
   WM_QUERYCTLTYPE
   WM_QUERYHELPINFO
   WM_QUERYTRACKINFO
   WM_QUERYWINDOWPARAMS
   WM_QUIT
   WM_REALIZEPALETTE
   WM_SAVEAPPLICATION
   WM_SEM1
   WM_SEM2
   WM_SEM3
   WM_SEM4
   WM_SETACCELTABLE
   WM_SETFOCUS
   WM_SETHELPINFO
   WM_SETSELECTION
   WM_SETWINDOWPARAMS
   WM_SHOW
   WM_SINGLESELECT
   WM_SIZE
   WM_SUBSTITUTESTRING
   WM_SYSCOLORCHANGE
   WM_SYSCOMMAND
   WM_SYSVALUECHANGED
   WM_TEXTEDIT
   WM_TIMER
   WM_TRACKFRAME
   WM_TRANSLATEACCEL
   WM_TRANSLATEMNEMONIC
   WM_UPDATEFRAME
   WM_VRNDISABLED
   WM_VRNENABLED
   WM_VSCROLL
   WM_WINDOWPOSCHANGED 

.....