WC_SPLITPANE styles

The splitpane control styles allow you to define orientation, hide-ability of side panes, resizing strategies and splitter drag styles.

Remarks:

For various reasons (like the ability to immediately respond to orientation changes) splitpane styles cannot be queried or set via the WinQuery/SetWindowULong() API, but require specific PM messages or the usage of one of the function-like macros defined for that purpose.

All the styles are mutually exclusive withing the categor they belong to:

Orientation

SPLITS_COLUMNS (default)
the splitpane is divided into columns by a vertical splitter.
SPLITS_ROWS
the splitpane is divided into rows by a horizontal splitter.

Hide-pane styles

SPLITS_HIDENONE (default)
the splitter does not include any clickable area. The panes can be dragged to the borders of the splitpane only if their minimum size is set to zero.
SPLITS_HIDEPANE1
define the left/top pane as hide-able. The splitter include a clickable area where triangle shaped arrows painted with the foreground color show which pane can be hidden.
SPLITS_HIDEPANE2
define the right/bottom pane as hide-able.
SPLITS_HIDEPANES
equates to ( SPLITS_HIDEPANE1 | SPLITS_HIDEPANE2) making both side panes hide-able.

Resizing behaviour

SPLITS_PROPORTIONAL (default)
when the size of the splitpane changes the splitter is moved to keep the rate of the sizes of the two panes.
SPLITS_FIXED1
the size of the left/top pane is kept constant, while the size of the other pane changes according to the splitpane size.
SPLITS_FIXED2
the size of the right/bottom pane is kept constant, while the size of the other pane changes according to the splitpane size.

Splitter drag behaviour

SPLITS_DRAGSYSTEM (default and reccomended)
use the default settings for window dragging, that is when Full window drag is selected in the system settings, the side panes size and position changes following the splitter, otherwise only a frame is dragged and the size panes size and position changes only when the drag ends.
SPLITS_DRAGSOLID
ignore the system settings and always drag the splitter as for Full window drag.
SPLITS_DRAGFRAME
ignore the system settings and always drag the splitter as a frame.