2025-04-27 07:49:33 -04:00

2570 lines
124 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<style>
<!--
BODY {font-family : Verdana; font-size:10pt; }
.xml { font-family: Courier New; font-size: 10 pt;
background-color: #C0C0C0; color: #000000; line-spacing: 0; display:block;
word-spacing: 0; margin-left: 10px; margin-right: 0;
margin-top: 0; margin-bottom: 0 }
.QML { font-family: Courier New; font-size: 10 pt;
background-color: #C0C0C0; color: #000000; line-spacing: 0; display:block;
word-spacing: 0; margin-left: 10px; margin-right: 0;
margin-top: 0; margin-bottom: 0 }
.UI { font-family:Tahoma; font-size:10pt; line-spacing: 0; display:block;
margin-right:10px; }
TABLE { font-family:Tahoma; font-size:10pt; margin-left:20px }
THEAD { background-color: black; color: white; font-weight:bold}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>RCML</title>
</head>
<body>
<h2>RCML <span style="font-size:10pt">: RC Markup Language</span></h2>
<table width="100%">
<tr>
<td>Program Manager Alias</td>
<td width="444"><a href="mailto:felixa">markcarr</a></td>
</tr>
<tr>
<td>Developer Alias</td>
<td width="444"><a href="mailto:felixa">FelixA</a></td>
</tr>
<tr>
<td>Test Reviewer (if appropriate)</td>
<td width="444">&nbsp;</td>
</tr>
<tr>
<td>Technical Editor (if appropriate)</td>
<td width="444">&nbsp;</td>
</tr>
<tr>
<td>Title</td>
<td width="444">RCML</td>
</tr>
<tr>
<td>Filename</td>
<td width="444">RCML</td>
</tr>
<tr>
<td>Version</td>
<td width="444">1.0</td>
</tr>
<tr>
<td>Team/Group</td>
<td width="444">Apps+ as part of Win+</td>
</tr>
<tr>
<td>Feature Area</td>
<td width="444">UI Presentation</td>
</tr>
<tr>
<td>For internal user only, or OK for external distribution</td>
<td width="444">Internal Use.</td>
</tr>
</table>
<h3 align="left">Contents</h3>
<div align="left">
<table width="60%">
<tr>
<td valign="top" width="111" nowrap><a href="#Summary">Summary</a><br>
<a href="#Goals">Design Goals</a><br>
<a href="#Scenario">File Definition</a><br>
<a href="#Design">Rendering<br>
</a><a href="#Data-Binding">Data-Binding</a><br>
<a href="#Usage">Usage</a><br>
</td>
<td valign="top" width="143" nowrap><a href="#IssueList">Open Issues</a><br>
<a href="#MoreInfo">For More Information</a><br>
<a href="#ChangeHistory">Change History</a><br>
<a href="#Appendix">Appendices</a><br>
<a href="#Testing">Testing</a><br>
</td>
</tr>
</table>
</div>
<h5><a name="Summary">Summary</a></h5>
<p>RCML is a new resource file format, that is designed to provide access to
more Win32 UI features than existing RC files. In addition to the RC file
format, there is an enhance version of DialogBox that works hand in hand with
the RCML file to make use of the enhanced data in the RCML file.</p>
<h5><a name="Goals">Design Goals</a></h5>
<p>RCML exposes current technology used in Win32 applications today, which
currently are underused or require menial coding efforts to make use of, here
are a list of examples / deficiencies.</p>
<ol>
<li>The upper and lower bound of the slider cannot be set in the RC file.</li>
<li>The contents of the list box are not specifiable in the RC file.</li>
<li>The contents of the combo box are not specifiable in the RC file.</li>
<li>Only BMP and ICO file formats are supported by statics.</li>
<li>There is no relative positioning of controls, only absolute positioning.</li>
<li>There is no exposure of fonts and colors on a per control basis.</li>
<li>There is no sound support (sonnificiation) of UI in dialogs.</li>
<li>There is no HTML <b>like</b> support in the static control (e.g. links).</li>
</ol>
<p>In addition it is a goal that the existing DialogProc can be re-used, as is,
with no alterations.</p>
<p>There will be a tool provided that will convert existing (static) dialogs
into RCML file format.</p>
<p>Leveraging new features require minimal change to the RCML file, and where
possible will resemble HTML like syntax (e.g. STYLE elements).</p>
<p>The resulting RCML file will then be bound back into the resources for the
application, and used/referenced like any other RC file format. This allows the
RC dialogs to participate in the whole RC file (including access to ICONS, BMPs
etc).</p>
<p>The file format will be extensible, but any elements not understood by the
loader will be skipped in their entirety. This allows other applications to
inject elements into the RCML stream for their own private use. Access to these
skipped elements may be provided at runtime through the XMLDialogProc.</p>
<h5><a name="FileDefinition">File Definition</a></h5>
<p>The file definition will support all existing Dialog resources, by simply
exposing all the current properties as properties on the CONTROL element. Higher
level elements will be substituted where applicable (e.g. &lt;BUTTON&gt; rather
than &lt;CONTROL CLASS=&quot;BUTTON&quot; STYLE=xxxx SYLTEEX=yyyy&gt;).</p>
<p>Elements support so far:</p>
<blockquote>
<ul>
<li><a href="#CONTROL">Control</a></li>
<li><a href="#d">Dialog</a></li>
<li><a href="#e">Edit</a></li>
<li><a href="#LABEL">Static</a></li>
<li><a href="#bu">Button</a></li>
<li><a href="#CHECKBOX">Check Box</a></li>
<li><a href="#gr">Groupbox</a></li>
<li><a href="#lo">Location</a></li>
<li><a href="#st">Style</a></li>
</ul>
</blockquote>
<h6><a name="CONTROL">CONTROL</a></h6>
<p>Control is the base element for specifying the type location size and style
of windows controls. This is the base element for all higher level controls.</p>
<p>ATTRIBUTES :&nbsp; ID CLASS TEXT WIDTH HEIGHT X Y STYLE WINDOWSTYLE STYLEEX&nbsp;<br>
ELEMENTS : LOCATION STYLE HELP</p>
<ul>
<li>ID<br>
Unique identifier for the control. These should be unique, but currrently
are not.</li>
<li>CLASS&nbsp;<br>
The windows class for the control (passed to CreateWindow) it is assumed
(currently) that the class is registered. If you use a standard class, e.g.
&quot;BUTTON&quot; &quot;STATIC&quot; &quot;EDIT&quot; you can use those
element names instead, see below.</li>
<li>TEXT&nbsp;<br>
The text for the control passed to CreateWindow - not supported by all
controls, ignored.</li>
<li>WIDTH&nbsp;<br>
The width of the control (in DLUs)</li>
<li>HEIGHT<br>
The height of the control (in DLUs)</li>
<li>X<br>
The X location of the control (in DLUs).</li>
<li>Y<br>
The Y location of the control (in DLUs).</li>
<li>STYLE<br>
The STYLE for the control. A 16 bit value passed to the create window. Used
in conjunction with WINDOWSTYLE.</li>
<li>STYLEEX<br>
The extended styles for the control - passed to the create window.</li>
<li>WINDOWSTYLE<br>
Technically the high WORD of the STYLE DWORD is all to do with window
styles, the most common are WS_VISIBLE | WS_CHILD | WS_TABSTOP = 0x5001. The
specialized control elements default to these, and thus WINDOWSTYLE is not
required.</li>
<li>RELATIVE : YES/NO or ID<br>
If YES, then the information in the LOCATION element is used to specify the
missing X,Y, WIDTH, HEIGHT attributes.<br>
A control ID can also be specified, making the construction of tables
easier.</li>
</ul>
<h6><a name="DIALOG">DIALOG</a></h6>
<p>The toplevel element, derives from CONTOL.</p>
<p>ATTRIBUTES :&nbsp;TITLE FONT FONTSIZE RESIZE (see also CONTROL)<br>
ELEMENTS : STYLE CONTROL BUTTON EDIT LIST LABEL &nbsp;</p>
<ul>
<li>TITLE<br>
The caption for the dialog.</li>
<li>FONT<br>
The name of the font used in the dialog.</li>
<li>FONTSIZE<br>
The size of the font used in the dialog.</li>
<li>RESIZE : AUTOMATIC / DIRECTED<br>
Dialogs can be made to resize automatically. Setting RESIZE to AUTOMATIC
invokes a limited set of pre-defined rules about which controls can resize
and in which directions. If you determine that these heuristics do not work
for a particular control, use the LOCATION element to specify the control's
characteristics.<br>
Setting RESIZE to DIRECTED turns off the AUTOMATIC rules and relies solely
upon the information provided in the LOCATION elements.</li>
</ul>
<h6><a name="BUTTON">BUTTON</a></h6>
<p>A push button. See control for more attributes / elements.</p>
<p>ATTRIBUTE : DEFPUSHBUTTON<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>DEFPUSHBUTTON : YES/NO<br>
Changes the style bits on the button to be def-push style.<br>
</li>
<li>WINDOWSTYLE : defaults to 0x5001<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;BUTTON&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
<li>WIDTH : defaults to 50</li>
<li>HEIGHT : defaults to 14</li>
</ul>
<h6><a name="CHECKBOX">CHECKBOX</a></h6>
<p>A check button. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<a href="#vis">(see also control)</a><br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5001<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;BUTTON&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
<li>WIDTH : no default</li>
<li>HEIGHT : 10</li>
</ul>
<h6><a name="EDIT">EDIT</a></h6>
<p>An edit control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;CLASSIFICATION LENGTH <a href="#vis">(see also control)</a><br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>CLASSIFICATION : one of &quot;UPPERCASE&quot; &quot;LOWERCASE&quot;
&quot;NUMBER&quot; &quot;FILE&quot; &quot;URL&quot; &quot;EMAIL&quot;
&quot;DATE&quot; &quot;TIME&quot; &quot;CURRENCY&quot;<br>
The classifications are used to 'hint' to the useage of the control. As
such, a classification of FILE will ensure that the edit control becomes a
drop target and uses available features of the platform (such as
AutoComplete).</li>
<li>LENGTH<br>
The maximum number of characters that can be entered.<br>
</li>
<li>WINDOWSTYLE : defaults to 0x5081<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;EDIT&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
<li>WIDTH : no default</li>
<li>HEIGHT : default 14</li>
</ul>
<h6><a name="GROUPBOX">GROUPBOX</a></h6>
<p>A GroupBox control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>WINDOWSTYLE : defaults to 0x5000<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;BUTTON&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="LABEL">LABEL</a></h6>
<p>A Static / Label control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;STATIC&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="SPINNER">SPINNER</a></h6>
<p>A Spinner (<b>msctls_updown32)</b> control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;msctls_updown32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="SLIDER">SLIDER</a></h6>
<p>A Slider (<b>msctls_trackbar32</b>) control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;msctls_trackbar32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="PROGRESS">PROGRESS</a></h6>
<p>A progressbar (<b>msctls_progress32</b>) control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;msctls_progress32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="COMBOBOX">COMBOBOX</a></h6>
<p>A combobox (<b>COMBO</b>) control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;msctls_progress32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="LISTBOX">LISTBOX</a></h6>
<p>A combobox (<b>COMBO</b>) control. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;msctls_progress32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="LISTVIEW">LISTVIEW</a></h6>
<p>A more complex version of LISTBOX (<b>SysListView32)</b>. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;SysListView32&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="IMAGE">IMAGE</a></h6>
<p>A control capable of displaying an image. Expect to support GIF JPEG PNG and
Alpha levels. See control for more attributes / elements.</p>
<p>ATTRIBUTE :&nbsp;<br>
ELEMENTS : <a href="#vis">(see control)</a></p>
<ul>
<li>STYLE : defaults to 0x5002<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>STYLEEX : defaults to 0x04<br>
Style attribute is not required, button defaults this value to the most
common value.</li>
<li>CLASS : defaults to &quot;???&quot;<br>
Class attribute is not required, button defaults this value to the most
common value, it is used if specified.</li>
</ul>
<h6><a name="HELP">HELP</a></h6>
<p>This element contains all manner of additional help related to the control,
including &quot;TOOLTIP&quot; &quot;BALLOONTIP&quot; &quot;CONTEXT&quot;</p>
<p>ATTRIBUTE :&nbsp;TOOLTIP BALLOONTIP CONTEXT<br>
ELEMENTS :&nbsp;</p>
<ul>
<li>TOOLTIP<br>
This is displayed using a tooltip type control when the use hovers over the
control.</li>
<li>BALLOONTIP<br>
This is displayed using a balloon tip type control when the user is having
difficulty interacting with the control (e.g. types a value that is out of
range).</li>
<li>CONTEXT<br>
This is displayed in a context help window when the user invokes context
help.</li>
</ul>
<p>&nbsp;</p>
<h6><a name="LOCATION">LOCATION</a></h6>
<p>The location element is used to specify a relative location for a control
(required RELATIVE=YES attribute on the parent element).</p>
<p>ATTRIBUTE : X Y WIDTH HEIGHT EDGE WIDER TALLER<br>
ELEMENTS : <a href="#vis">&lt;NONE&gt;</a></p>
<ul>
<li>X :&nbsp;<br>
Horizontal delta added onto the previous controls X location.</li>
<li>Y&nbsp;<br>
Vertical delta added onto the previous controls Y location.</li>
<li>WIDTH<br>
Width delta, added onto the previous controls WIDTH.</li>
<li>HEIGHT&nbsp;<br>
Height delta added onto the previous controls HEIGHT.</li>
<li>EDGE : 0,1,2,3 4,5,6,7<br>
0-3 The corner of the previous control which the X and Y deltas are relative to. The corners are
numbered from the Top left corner in a clock-wise direction.&nbsp;<br>
4-7 The corner of the dialog itself which the X and Y deltas are. The corners are
numbered from the Top left corner in a clock-wise direction.&nbsp;</li>
<li>WIDER : YES / NO<br>
When using automatic or directed RESIZE capabilities on the dialog, the
horizontal resize nature of the individual controls can be altered using
this attribute.</li>
<li>TALLER : YES / NO<br>
When using automatic or directed RESIZE capabilities on the dialog, the
vertical resize nature of the individual controls can be altered using this
attribute.</li>
</ul>
<p>Example:</p>
<p class="xml">&lt;BUTTON X=10 Y=10 WIDTH=40 HEIGHT=10 TEXT=&quot;OK&quot;
ID=&quot;1&quot;/&gt;</p>
<p class="xml">&lt;BUTTON RELATIVE=&quot;YES&quot; TEXT=&quot;Cancel&quot;
ID=&quot;2&quot;&gt;</p>
<p class="xml">&nbsp;&nbsp;&nbsp; &lt;LOCATION Y=&quot;+14&quot;
EDGET=&quot;0&quot;/&gt;</p>
<p class="xml">&lt;/BUTTON&gt;</p>
<p>This will produce two buttons one at (10,10) the other at (10,24). The width
and height of the Cancel button will be inherited from the OK button, and will
be 40 and 10 respectively. The buttons will 'move' in a group, so changing the
X=10 to X=120 will place BOTH buttons on the right hand edge of the dialog.</p>
<p>To obtain an 'intra' control spacing, the delta can be made from the bottom
left corner of the control.</p>
<p class="xml">&lt;BUTTON X=10 Y=10 WIDTH=40 HEIGHT=10 TEXT=&quot;OK&quot;
ID=&quot;1&quot;/&gt;</p>
<p class="xml">&lt;BUTTON RELATIVE=&quot;YES&quot; TEXT=&quot;Cancel&quot;
ID=&quot;2&quot;&gt;</p>
<p class="xml">&nbsp;&nbsp;&nbsp; &lt;LOCATION Y=&quot;+4&quot;
EDGET=&quot;3&quot;/&gt;</p>
<p class="xml">&lt;/BUTTON&gt;</p>
<p>This ensures that there is always a gap of 4 DLUs between controls,
regardless of the height of the previous control.</p>
<h6><a name="STYLE">STYLE</a></h6>
<p>The style element is <i>similar</i> to the style element in HTML.</p>
<p>ATTRIBUTE : FONT-FAMILY FONT-SIZE FONT-STYLE FONT-WEGHT BACKGROUND-COLOR
COLOR<br>
ELEMENTS : <a href="#vis">&lt;NONE&gt;</a></p>
<p>You should refer to the W3C documentation for the meaning of these
attributes. If the style element is added at the dialog level, all child
controls 'inherit' this style. HOWEVER if a child specifies its own STYLE
element, this overrides ALL the styles, there is no 'merging' of attributes.
This is work in progress.</p>
<h5><a name="MoreControls">More Controls</a></h5>
<ul>
<li>Slider</li>
<li>List</li>
<li>DropDown (editable and not)</li>
<li>Rectangle</li>
<li>Edge</li>
<li>Image :&nbsp;
<ul>
<li>Icon</li>
<li>BMP</li>
<li>GIF requires GDI+</li>
<li>JPEG requires GDI+</li>
</ul>
</li>
<li>Animation : DShow support</li>
<li>ActiveX controls</li>
</ul>
<h6>Enhancements to Existing Controls</h6>
<ul>
<li>Base Control
<ul>
<li>Tooltips</li>
<li>Balloontips</li>
<li>Sonnification</li>
</ul>
</li>
<li>Edit controls.
<ul>
<li>Passwords</li>
<li>Numbers</li>
<li>Masked Edit?</li>
</ul>
</li>
</ul>
<h6>Enhancement Elements.</h6>
<p>In addition to Style and Location</p>
<ul>
<li>Sound (DShow)</li>
<li>Alpha support (requires GDI+)</li>
<li>BaloonTips and Tooltips (perhaps added to the base control?)</li>
</ul>
<h5><a name="IssueList">Open Issues</a></h5>
<p>Default Style for control classes, e.g.</p>
<p class="xml">&lt;STYLE ID=&quot;BUTTON&quot; COLOR=&quot;LightBlue&quot; /&gt;</p>
<p class="xml">&lt;BUTTON TEXT=&quot;Cancel&quot; ID=&quot;2&quot; .../&gt;</p>
<p class="xml">&lt;/BUTTON&gt;</p>
<p>Results in a LightBlue colored button.</p>
<p>Default Style for control classes, e.g.</p>
<p class="xml">&lt;STYLE ID=&quot;BUTTON&quot; COLOR=&quot;LightBlue&quot; /&gt;</p>
<p class="xml">&lt;STYLE ID=&quot;OKBUTTON&quot; COLOR=&quot;Red&quot; /&gt;</p>
<p class="xml">&lt;BUTTON TEXT=&quot;OK&quot; ID=&quot;1&quot;
STYLEID=&quot;OKBUTTON&quot;/&gt;</p>
<p class="xml">&lt;/BUTTON&gt;</p>
<p>Would result in a <font color="#FF0000">Red</font> OK button, but all other
buttons would be <font color="#0000FF">LightBlue</font>.</p>
<h5><a name="MoreInfo">For More Information</a></h5>
<p>Here is the set of information provide about their style bits:</p>
<font face="verdana,arial,helvetica" size="2">
<h2><a name="_win32_button_styles"></a>Button Styles</h2>
<p>If you create a button by specifying the BUTTON class with the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function, you can
specify a combination of the button styles in the following table.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="38%">Style</th>
<th align="left" width="62%"><font face="verdana,arial,helvetica" size="2">RCML
</font>
</th>
<th align="left" width="62%">Meaning</th>
</tr>
<tr vAlign="top">
<td width="38%">BS_3STATE</td>
<td width="62%">TRISTATE=&quot;YES&quot;</td>
<td width="62%">Creates a button that is the same as a check box, except
that the box can be grayed as well as checked or cleared. Use the grayed
state to show that the state of the check box is not determined.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_AUTO3STATE</td>
<td width="62%">implied by TRISTATE=&quot;YES&quot;</td>
<td width="62%">Creates a button that is the same as a three-state check
box, except that the box changes its state when the user selects it. The
state cycles through checked, grayed, and cleared.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_AUTOCHECKBOX</td>
<td width="62%">CHECKBOX is by default, autocheckbox.</td>
<td width="62%">Creates a button that is the same as a check box, except
that the check state automatically toggles between checked and cleared
each time the user selects the check box.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_AUTORADIOBUTTON</td>
<td width="62%">RADIODUTTON is by default, auto.</td>
<td width="62%">Creates a button that is the same as a radio button,
except that when the user selects it, The system automatically sets the
button's check state to checked and automatically sets the check state
for all other buttons in the same group to cleared.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_CHECKBOX</td>
<td width="62%">&lt;CHECKBOX&gt;</td>
<td width="62%">Creates a small, empty check box with text. By default,
the text is displayed to the right of the check box. To display the text
to the left of the check box, combine this flag with the BS_LEFTTEXT
style (or with the equivalent BS_RIGHTBUTTON style).</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_DEFPUSHBUTTON</td>
<td width="62%">DEFPUSH=&quot;YES&quot;</td>
<td width="62%">Creates a push button that behaves like a BS_PUSHBUTTON
style button, but also has a heavy black border. If the button is in a
dialog box, the user can select the button by pressing the ENTER key,
even when the button does not have the input focus. This style is useful
for enabling the user to quickly select the most likely (default)
option.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_GROUPBOX</td>
<td width="62%">&lt;GROUP&gt;</td>
<td width="62%">Creates a rectangle in which other controls can be
grouped. Any text associated with this style is displayed in the
rectangle's upper left corner.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_LEFTTEXT</td>
<td width="62%">By default.</td>
<td width="62%">Places text on the left side of the radio button or check
box when combined with a radio button or check box style. Same as the
BS_RIGHTBUTTON style.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_OWNERDRAW</td>
<td width="62%"></td>
<td width="62%">Creates an owner-drawn button. The owner window receives a
<a href="combobox_85d9.htm">WM_MEASUREITEM</a> message when the button
is created and a <a href="combobox_3sx9.htm">WM_DRAWITEM</a> message
when a visual aspect of the button has changed. Do not combine the
BS_OWNERDRAW style with any other button styles.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_PUSHBUTTON</td>
<td width="62%">&lt;BUTTON&gt;</td>
<td width="62%">Creates a push button that posts a <a href="newmenus_8wh0.htm">WM_COMMAND</a>
message to the owner window when the user selects the button.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_RADIOBUTTON</td>
<td width="62%">&lt;RADIOBUTTON&gt;</td>
<td width="62%">Creates a small circle with text. By default, the text is
displayed to the right of the circle. To display the text to the left of
the circle, combine this flag with the BS_LEFTTEXT style (or with the
equivalent BS_RIGHTBUTTON style). Use radio buttons for groups of
related, but mutually exclusive choices.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_USERBUTTON</td>
<td width="62%">Obsolete.</td>
<td width="62%">Obsolete, but provided for compatibility with 16-bit
versions of Windows. Win32-based applications should use BS_OWNERDRAW
instead.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_BITMAP</td>
<td width="62%">IMAGE=&quot;...&quot;</td>
<td width="62%">Specifies that the button displays a bitmap.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_BOTTOM</td>
<td width="62%">Use VERTICAL-ALIGN=&quot;BOTTOM&quot;</td>
<td width="62%">Places text at the bottom of the button rectangle.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_CENTER</td>
<td width="62%">Use TEXT-ALIGN=&quot;JUSTIFY&quot;</td>
<td width="62%">Centers text horizontally in the button rectangle.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_ICON</td>
<td width="62%">IMAGE=&quot;...&quot;</td>
<td width="62%">Specifies that the button displays an icon.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_FLAT</td>
<td width="62%">Use BORDER-STYLE=&quot;FLAT&quot;</td>
<td width="62%">Specifies that the button is two-dimensional; it does not
use the default shading to create a 3-D image.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_LEFT</td>
<td width="62%">Use TEXT-ALIGN=&quot;LEFT&quot;</td>
<td width="62%">Left-justifies the text in the button rectangle. However,
if the button is a check box or radio button that does not have the
BS_RIGHTBUTTON style, the text is left justified on the right side of
the check box or radio button.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_MULTILINE</td>
<td width="62%">MULTI-LINE=&quot;YES&quot;</td>
<td width="62%">Wraps the button text to multiple lines if the text string
is too long to fit on a single line in the button rectangle.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_NOTIFY</td>
<td width="62%">
</td>
<td width="62%">Enables a button to send BN_KILLFOCUS and BN_SETFOCUS
notification messages to its parent window.
<p>Note that buttons send the BN_CLICKED notification message regardless
of whether it has this style. To get BN_DBLCLK notification messages,
the button must have the BS_RADIOBUTTON or BS_OWNERDRAW style.</p>
</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_PUSHLIKE</td>
<td width="62%"></td>
<td width="62%">Makes a button (such as a check box, three-state check
box, or radio button) look and act like a push button. The button looks
raised when it isn't pushed or checked, and sunken when it is pushed or
checked.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_RIGHT</td>
<td width="62%">Use TEXT-ALIGN=&quot;RIGHT&quot;</td>
<td width="62%">Right-justifies text in the button rectangle. However, if
the button is a check box or radio button that does not have the
BS_RIGHTBUTTON style, the text is right justified on the right side of
the check box or radio button.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_RIGHTBUTTON</td>
<td width="62%"></td>
<td width="62%">Positions a radio button's circle or a check box's square
on the right side of the button rectangle. Same as the BS_LEFTTEXT
style.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_TEXT</td>
<td width="62%">Default.</td>
<td width="62%">Specifies that the button displays text.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_TOP</td>
<td width="62%">Use
<font face="verdana,arial,helvetica" size="2">
VERTICAL-ALIGN</font>=&quot;TOP&quot;</td>
<td width="62%">Places text at the top of the button rectangle.</td>
</tr>
<tr vAlign="top">
<td width="38%">BS_VCENTER</td>
<td width="62%">Use VERTICAL-ALIGN=&quot;center&quot;</td>
<td width="62%">Places text in the middle (vertically) of the button
rectangle.</td>
</tr>
</tbody>
</table>
<font color="#228b22" size="1"><br>
<br>
Built on: Monday, November 16, 1998</font>
<h2><a name="_win32_combo_box_styles"></a>Combo Box Styles</h2>
<p>To create a combo box using the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function, specify the
COMBOBOX class, appropriate window style constants, and a combination of the
following combo box styles.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="44%">Style</th>
<th align="left" width="56%">RCML</th>
<th align="left" width="56%">Description</th>
</tr>
<tr vAlign="top">
<td width="44%">CBS_AUTOHSCROLL</td>
<td width="56%"></td>
<td width="56%">Automatically scrolls the text in an edit control to the
right when the user types a character at the end of the line. If this
style is not set, only text that fits within the rectangular boundary is
allowed.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_DISABLENOSCROLL</td>
<td width="56%"></td>
<td width="56%">Shows a disabled vertical scroll bar in the list box when
the box does not contain enough items to scroll. Without this style, the
scroll bar is hidden when the list box does not contain enough items.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_DROPDOWN</td>
<td width="56%"></td>
<td width="56%">Similar to CBS_SIMPLE, except that the list box is not
displayed unless the user selects an icon next to the edit control.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_DROPDOWNLIST</td>
<td width="56%"></td>
<td width="56%">Similar to CBS_DROPDOWN, except that the edit control is
replaced by a static text item that displays the current selection in
the list box.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_HASSTRINGS</td>
<td width="56%"></td>
<td width="56%">Specifies that an owner-drawn combo box contains items
consisting of strings. The combo box maintains the memory and address
for the strings so the application can use the <a href="combobox_6bjo.htm">CB_GETLBTEXT</a>
message to retrieve the text for a particular item.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_LOWERCASE</td>
<td width="56%"></td>
<td width="56%">Converts to lowercase all text in both the selection field
and the list.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_NOINTEGRALHEIGHT</td>
<td width="56%"></td>
<td width="56%">Specifies that the size of the combo box is exactly the
size specified by the application when it created the combo box.
Normally, the system sizes a combo box so that it does not display
partial items.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_OEMCONVERT</td>
<td width="56%"></td>
<td width="56%">Converts text entered in the combo box edit control from
the Windows character set to the OEM character set and then back to the
Windows set. This ensures proper character conversion when the
application calls the <a href="JavaScript:hhobj_1.Click()"><b>CharToOem</b></a>
function to convert a Windows string in the combo box to OEM characters.
This style is most useful for combo boxes that contain file names and
applies only to combo boxes created with the CBS_SIMPLE or CBS_DROPDOWN
style.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_OWNERDRAWFIXED</td>
<td width="56%"></td>
<td width="56%">Specifies that the owner of the list box is responsible
for drawing its contents and that the items in the list box are all the
same height. The owner window receives a <a href="combobox_85d9.htm">WM_MEASUREITEM</a>
message when the combo box is created and a <a href="combobox_3sx9.htm">WM_DRAWITEM</a>
message when a visual aspect of the combo box has changed.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_OWNERDRAWVARIABLE</td>
<td width="56%"></td>
<td width="56%">Specifies that the owner of the list box is responsible
for drawing its contents and that the items in the list box are variable
in height. The owner window receives a WM_MEASUREITEM message for each
item in the combo box when you create the combo box and a WM_DRAWITEM
message when a visual aspect of the combo box has changed.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_SIMPLE</td>
<td width="56%"></td>
<td width="56%">Displays the list box at all times. The current selection
in the list box is displayed in the edit control.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_SORT</td>
<td width="56%"></td>
<td width="56%">Automatically sorts strings added to the list box.</td>
</tr>
<tr vAlign="top">
<td width="44%">CBS_UPPERCASE</td>
<td width="56%"></td>
<td width="56%">Converts to uppercase all text in both the selection field
and the list.</td>
</tr>
</tbody>
</table>
<br>
<font color="#228b22" size="1">Built on: Monday, November 16, 1998</font>
<h2><a name="_win32_edit_control_styles"></a>Edit Control Styles</h2>
<p>To create an edit control using the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function, specify the
EDIT class, appropriate window style constants, and a combination of the
following edit control styles.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="31%">Style</th>
<th align="left" width="69%"><font face="verdana,arial,helvetica" size="2">RCML
</font>
</th>
<th align="left" width="69%">Meaning</th>
</tr>
<tr vAlign="top">
<td width="31%">ES_AUTOHSCROLL</td>
<td width="69%"></td>
<td width="69%">Automatically scrolls text to the right by 10 characters
when the user types a character at the end of the line. When the user
presses the ENTER key, the control scrolls all text back to position
zero.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_AUTOVSCROLL</td>
<td width="69%"></td>
<td width="69%">Automatically scrolls text up one page when the user
presses the ENTER key on the last line.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_CENTER</td>
<td width="69%">
</td>
<td width="69%"><b>Windows NT 5.0 and later; Windows 98:</b> Centers text
in a single-line or multiline edit control.
<p><b>Earlier versions of Windows and Windows NT:</b> Centers text in a
multiline edit control.</p>
</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_LEFT</td>
<td width="69%"></td>
<td width="69%">Left aligns text.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_LOWERCASE</td>
<td width="69%"></td>
<td width="69%">Converts all characters to lowercase as they are typed
into the edit control.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_MULTILINE</td>
<td width="69%"></td>
<td width="69%">Designates a multiline edit control. The default is
single-line edit control.</td>
</tr>
<tr vAlign="top">
<td rowSpan="4" width="31%">&nbsp;</td>
<td width="69%"></td>
<td width="69%">When the multiline edit control is in a dialog box, the
default response to pressing the ENTER key is to activate the default
button. To use the ENTER key as a carriage return, use the ES_WANTRETURN
style.</td>
</tr>
<tr vAlign="top">
<td width="69%"></td>
<td width="69%">When the multiline edit control is not in a dialog box and
the ES_AUTOVSCROLL style is specified, the edit control shows as many
lines as possible and scrolls vertically when the user presses the ENTER
key. If you do not specify ES_AUTOVSCROLL, the edit control shows as
many lines as possible and beeps if the user presses the ENTER key when
no more lines can be displayed.</td>
</tr>
<tr vAlign="top">
<td width="69%"></td>
<td width="69%">If you specify the ES_AUTOHSCROLL style, the multiline
edit control automatically scrolls horizontally when the caret goes past
the right edge of the control. To start a new line, the user must press
the ENTER key. If you do not specify ES_AUTOHSCROLL, the control
automatically wraps words to the beginning of the next line when
necessary. A new line is also started if the user presses the ENTER key.
The window size determines the position of the wordwrap. If the window
size changes, the wordwrapping position changes and the text is
redisplayed.</td>
</tr>
<tr vAlign="top">
<td width="69%"></td>
<td width="69%">Multiline edit controls can have scroll bars. An edit
control with scroll bars processes its own scroll bar messages. Note
that edit controls without scroll bars scroll as described in the
previous paragraphs and process any scroll messages sent by the parent
window.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_NOHIDESEL</td>
<td width="69%"></td>
<td width="69%">Negates the default behavior for an edit control. The
default behavior hides the selection when the control loses the input
focus and inverts the selection when the control receives the input
focus. If you specify ES_NOHIDESEL, the selected text is inverted, even
if the control does not have the focus.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_NUMBER</td>
<td width="69%"></td>
<td width="69%">Allows only digits to be entered into the edit control.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_OEMCONVERT</td>
<td width="69%"></td>
<td width="69%">Converts text entered in the edit control. The text is
converted from the Windows character set to the OEM character set and
then back to the Windows set. This ensures proper character conversion
when the application calls the <a href="JavaScript:hhobj_1.Click()"><b>CharToOem</b></a>
function to convert a Windows string in the edit control to OEM
characters. This style is most useful for edit controls that contain
filenames.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_PASSWORD</td>
<td width="69%"></td>
<td width="69%">Displays an asterisk (*) for each character typed into the
edit control. You can use the EM_SETPASSWORDCHAR message to change the
character that is displayed. The ES_PASSWORD style is valid only for
single-line edit controls.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_READONLY</td>
<td width="69%"></td>
<td width="69%">Prevents the user from typing or editing text in the edit
control.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_RIGHT</td>
<td width="69%">
</td>
<td width="69%"><b>Windows NT 5.0 and later; Windows 98:</b> Right aligns
text in a single-line or multiline edit control.
<p><b>Earlier versions of Windows and Windows NT:</b> Right aligns text
in a multiline edit control.</p>
</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_UPPERCASE</td>
<td width="69%"></td>
<td width="69%">Converts all characters to uppercase as they are typed
into the edit control.</td>
</tr>
<tr vAlign="top">
<td width="31%">ES_WANTRETURN</td>
<td width="69%"></td>
<td width="69%">Specifies that a carriage return be inserted when the user
presses the ENTER key while entering text into a multiline edit control
in a dialog box. If you do not specify this style, pressing the ENTER
key has the same effect as pressing the dialog box's default push
button. This style has no effect on a single-line edit control.</td>
</tr>
</tbody>
</table>
<br>
<font color="#228b22" size="1">Built on: Monday, November 16, 1998</font>
<h2><a name="_win32_list_box_styles"></a>List Box Styles</h2>
<p>To create a list box by using the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function, use the
LISTBOX class, appropriate window style constants, and the following style
constants to define the list box.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="41%">List box style</th>
<th align="left" width="59%"><font face="verdana,arial,helvetica" size="2">RCML
</font>
</th>
<th align="left" width="59%">Description</th>
</tr>
<tr vAlign="top">
<td width="41%">LBS_DISABLENOSCROLL</td>
<td width="59%"></td>
<td width="59%">Shows a disabled vertical scroll bar for the list box when
the box does not contain enough items to scroll. If you do not specify
this style, the scroll bar is hidden when the list box does not contain
enough items.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_EXTENDEDSEL</td>
<td width="59%"></td>
<td width="59%">Allows multiple items to be selected by using the SHIFT
key and the mouse or special key combinations.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_HASSTRINGS</td>
<td width="59%"></td>
<td width="59%">Specifies that a list box contains items consisting of
strings. The list box maintains the memory and addresses for the strings
so that the application can use the <a href="listbox_6a9g.htm">LB_GETTEXT</a>
message to retrieve the text for a particular item. By default, all list
boxes except owner-drawn list boxes have this style. You can create an
owner-drawn list box either with or without this style.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_MULTICOLUMN</td>
<td width="59%"></td>
<td width="59%">Specifies a multicolumn list box that is scrolled
horizontally. The <a href="listbox_8hk8.htm">LB_SETCOLUMNWIDTH</a>
message sets the width of the columns.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_MULTIPLESEL</td>
<td width="59%"></td>
<td width="59%">Turns string selection on or off each time the user clicks
or double-clicks a string in the list box. The user can select any
number of strings.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_NODATA</td>
<td width="59%">
</td>
<td width="59%">Specifies a no-data list box. Specify this style when the
count of items in the list box will exceed one thousand. A no-data list
box must also have the LBS_OWNERDRAWFIXED style, but must not have the
LBS_SORT or LBS_HASSTRINGS style.
<p>A no-data list box resembles an owner-drawn list box except that it
contains no string or bitmap data for an item. Commands to add, insert,
or delete an item always ignore any given item data; requests to find a
string within the list box always fail. The system sends the <a href="combobox_3sx9.htm">WM_DRAWITEM</a>
message to the owner window when an item must be drawn. The <b>itemID</b>
member of the <a href="combobox_88s2.htm"><b>DRAWITEMSTRUCT</b></a>
structure passed with the WM_DRAWITEM message specifies the line number
of the item to be drawn. A no-data list box does not send a <a href="listbox_5dbh.htm">WM_DELETEITEM</a>
message.</p>
</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_NOINTEGRALHEIGHT</td>
<td width="59%"></td>
<td width="59%">Specifies that the size of the list box is exactly the
size specified by the application when it created the list box.
Normally, the system sizes a list box so that the list box does not
display partial items.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_NOREDRAW</td>
<td width="59%"></td>
<td width="59%">Specifies that the list box's appearance is not updated
when changes are made. You can change this style by sending a <a href="JavaScript:hhobj_1.Click()">WM_SETREDRAW</a>
message at any time.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_NOSEL</td>
<td width="59%"></td>
<td width="59%">Specifies that the list box contains items that can be
viewed but not selected.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_NOTIFY</td>
<td width="59%"></td>
<td width="59%">Notifies the parent window with an input message whenever
the user clicks or double-clicks a string in the list box.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_OWNERDRAWFIXED</td>
<td width="59%"></td>
<td width="59%">Specifies that the owner of the list box is responsible
for drawing its contents and that the items in the list box are the same
height. The owner window receives a <a href="combobox_85d9.htm">WM_MEASUREITEM</a>
message when the list box is created and a <a href="combobox_3sx9.htm">WM_DRAWITEM</a>
message when a visual aspect of the list box has changed.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_OWNERDRAWVARIABLE</td>
<td width="59%"></td>
<td width="59%">Specifies that the owner of the list box is responsible
for drawing its contents and that the items in the list box are variable
in height. The owner window receives a WM_MEASUREITEM message for each
item in the combo box when the combo box is created and a WM_DRAWITEM
message when a visual aspect of the combo box has changed.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_SORT</td>
<td width="59%"></td>
<td width="59%">Sorts strings in the list box alphabetically.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_STANDARD</td>
<td width="59%"></td>
<td width="59%">Sorts strings in the list box alphabetically. The parent
window receives an input message whenever the user clicks or
double-clicks a string. The list box has borders on all sides.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_USETABSTOPS</td>
<td width="59%"></td>
<td width="59%">Enables a list box to recognize and expand tab characters
when drawing its strings. You can use the <a href="listbox_9bzn.htm">LB_SETTABSTOPS</a>
message to specify tab stop positions. The default tab positions are 32
dialog template units apart. Dialog template units are the
device-independent units used in dialog box templates. To convert
measurements from dialog template units to screen units (pixels), use
the <a href="dlgboxes_4hf8.htm"><b>MapDialogRect</b></a> function.</td>
</tr>
<tr vAlign="top">
<td width="41%">LBS_WANTKEYBOARDINPUT</td>
<td width="59%"></td>
<td width="59%">Specifies that the owner of the list box receives <a href="listbox_3o31.htm">WM_VKEYTOITEM</a>
messages whenever the user presses a key and the list box has the input
focus. This enables an application to perform special processing on the
keyboard input.</td>
</tr>
</tbody>
</table>
<br>
<font color="#228b22" size="1"><br>
Built on: Monday, November 16, 1998</font>
<h2><a name="_win32_scroll_bar_control_styles"></a>Scroll Bar Control Styles</h2>
<p>To create a scroll bar control using the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function specify the
SCROLLBAR class, appropriate window style constants, and a combination of the
following scroll bar control styles. Some of the styles create a scroll bar
control that uses a default width or height. However, you must always specify
the x- and y-coordinates and the other dimensions of the scroll bar when you
call <b>CreateWindow</b> or <b>CreateWindowEx</b>.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="33%">Style</th>
<th align="left" width="67%"><font face="verdana,arial,helvetica" size="2">RCML
</font>
</th>
<th align="left" width="67%">Meaning</th>
</tr>
<tr vAlign="top">
<td width="33%">SBS_BOTTOMALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the bottom edge of the scroll bar with the bottom
edge of the rectangle defined by the <i>x</i>, <i>y</i>, <i>nWidth</i>,
and <i>nHeight</i> parameters of <b>CreateWindowEx</b> function. The
scroll bar has the default height for system scroll bars. Use this style
with the SBS_HORZ style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_HORZ</td>
<td width="67%"></td>
<td width="67%">Designates a horizontal scroll bar. If neither the
SBS_BOTTOMALIGN nor SBS_TOPALIGN style is specified, the scroll bar has
the height, width, and position specified by the <i>x</i>, <i>y</i>, <i>nWidth</i>,
and <i>nHeight</i> parameters of <b>CreateWindowEx</b>.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_LEFTALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the left edge of the scroll bar with the left edge
of the rectangle defined by the <i>x</i>, <i>y</i>, <i>nWidth</i>, and <i>nHeight</i>
parameters of <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a>. The
scroll bar has the default width for system scroll bars. Use this style
with the SBS_VERT style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_RIGHTALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the right edge of the scroll bar with the right
edge of the rectangle defined by the <i>x</i>, <i>y</i>, <i>nWidth</i>,
and <i>nHeight</i> parameters of <b>CreateWindowEx</b>. The scroll bar
has the default width for system scroll bars. Use this style with the
SBS_VERT style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_SIZEBOX</td>
<td width="67%"></td>
<td width="67%">Designates a size box. If you specify neither the
SBS_SIZEBOXBOTTOMRIGHTALIGN nor the SBS_SIZEBOXTOPLEFTALIGN style, the
size box has the height, width, and position specified by the <i>x</i>, <i>y</i>,
<i>nWidth</i>, and <i>nHeight</i> parameters of <b>CreateWindowEx</b>.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_SIZEBOXBOTTOMRIGHT<br>
ALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the lower right corner of the size box with the
lower right corner of the rectangle specified by the <i>x</i>, <i>y</i>,
<i>nWidth</i>, and <i>nHeight</i> parameters of <b>CreateWindowEx</b>.
The size box has the default size for system size boxes. Use this style
with the SBS_SIZEBOX style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_SIZEBOXTOPLEFTALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the upper left corner of the size box with the
upper left corner of the rectangle specified by the <i>x</i>, <i>y</i>, <i>nWidth</i>,
and <i>nHeight</i> parameters of <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a>.
The size box has the default size for system size boxes. Use this style
with the SBS_SIZEBOX style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_SIZEGRIP</td>
<td width="67%"></td>
<td width="67%">Same as SBS_SIZEBOX, but with a raised edge.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_TOPALIGN</td>
<td width="67%"></td>
<td width="67%">Aligns the top edge of the scroll bar with the top edge of
the rectangle defined by the <i>x</i>, <i>y</i>, <i>nWidth</i>, and <i>nHeight</i>
parameters of <b>CreateWindowEx</b>. The scroll bar has the default
height for system scroll bars. Use this style with the SBS_HORZ style.</td>
</tr>
<tr vAlign="top">
<td width="33%">SBS_VERT</td>
<td width="67%"></td>
<td width="67%">Designates a vertical scroll bar. If you specify neither
the SBS_RIGHTALIGN nor the SBS_LEFTALIGN style, the scroll bar has the
height, width, and position specified by the <i>x</i>, <i>y</i>, <i>nWidth</i>,
and <i>nHeight</i> parameters of <b>CreateWindowEx</b>.</td>
</tr>
</tbody>
</table>
<br>
<font color="#228b22" size="1"><br>
Built on: Monday, November 16, 1998</font>
<h2>Static Control Styles</h2>
<p>To create a static control using the <a href="windows_33jr.htm"><b>CreateWindow</b></a>
or <a href="windows_1w6w.htm"><b>CreateWindowEx</b></a> function, specify the
STATIC class, appropriate window style constants, and a combination of the
following static control styles.</p>
<table cellPadding="0" cellSpacing="0">
<tbody>
<tr vAlign="top">
<th align="left" width="39%">Style</th>
<th align="left" width="61%"><font face="verdana,arial,helvetica" size="2">RCML
</font>
</th>
<th align="left" width="61%">Description</th>
</tr>
<tr vAlign="top">
<td width="39%">SS_BITMAP</td>
<td width="61%">&lt;IMAGE&gt;</td>
<td width="61%">Specifies a bitmap is to be displayed in the static
control. The given text is the name of a bitmap (not a filename) defined
elsewhere in the resource file. The style ignores the <i>nWidth</i> and <i>nHeight</i>
parameters; the control automatically sizes itself to accommodate the
bitmap.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_BLACKFRAME</td>
<td width="61%">&lt;RECT&gt; &amp; &lt;STYLE COLOR=&quot;BLACK&quot; <font face="verdana,arial,helvetica" size="2">BORDER-STYLE</font>=&quot;SOLID&quot;&gt;</td>
<td width="61%">Specifies a box with a frame drawn in the same color as
the window frames. This color is black in the default color scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_BLACKRECT</td>
<td width="61%">&lt;RECT <font face="verdana,arial,helvetica" size="2">FILL=&quot;YES&quot;</font>&gt;
&amp; &lt;STYLE COLOR=&quot;BLACK&quot; <font face="verdana,arial,helvetica" size="2">BORDER-STYLE</font>=&quot;SOLID&quot;&gt;</td>
<td width="61%">Specifies a rectangle filled with the current window frame
color. This color is black in the default color scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_CENTER</td>
<td width="61%">TEXT-ALIGN=&quot;JUSTIFY&quot;</td>
<td width="61%">Specifies a simple rectangle and centers the given text in
the rectangle. The text is formatted before it is displayed. Words that
extend past the end of a line are automatically wrapped to the beginning
of the next centered line. Words that are longer than the width of the
control are truncated.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_CENTERIMAGE</td>
<td width="61%">FILL-BACKGROUND=&quot;YES&quot;</td>
<td width="61%">Specifies that, if the bitmap or icon is smaller than the
client area of the static control, the rest of the client area is filled
with the color of the pixel in the top left corner of the bitmap or
icon. If the static control contains a single line of text, the text is
centered vertically in the client area of the control.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ENDELLIPSIS or<br>
SS_PATHELLIPSIS</td>
<td width="61%">ELLIPSIS=&quot;END&quot;
<p>ELLIPSIS=&quot;PATH&quot;
</td>
<td width="61%"><b>Windows NT:</b> Replaces part of the given string with
ellipses, if necessary, so that the result fits in the specified
rectangle.
<p>You can specify SS_END_ELLIPSIS to replace characters at the end of
the string, or SS_PATHELLIPSIS to replace characters in the middle of
the string. If the string contains backslash (\) characters,
SS_PATHELLIPSIS preserves as much of the text after the last backslash
as possible.</p>
</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ENHMETAFILE</td>
<td width="61%">&lt;IMAGE &gt;</td>
<td width="61%">Specifies an enhanced metafile is to be displayed in the
static control. The given text is the name of a metafile. An enhanced
metafile static control has a fixed size; the metafile is scaled to fit
the static control's client area.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ETCHEDFRAME</td>
<td width="61%"><font face="verdana,arial,helvetica" size="2">&lt;RECT&gt;
&amp; &lt;STYLE COLOR=&quot;BLACK&quot;
BORDER-STYLE=&quot;SOLID&quot;&gt;</font></td>
<td width="61%">Draws the frame of the static control using the
EDGE_ETCHED edge style. For more information, see the <a href="JavaScript:hhobj_1.Click()"><b>DrawEdge</b></a>
function.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ETCHEDHORZ</td>
<td width="61%"></td>
<td width="61%">Draws the top and bottom edges of the static control using
the EDGE_ETCHED edge style. For more information, see the <b>DrawEdge</b>
function.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ETCHEDVERT</td>
<td width="61%"></td>
<td width="61%">Draws the left and right edges of the static control using
the EDGE_ETCHED edge style. For more information, see the <a href="JavaScript:hhobj_2.Click()"><b>DrawEdge</b></a>
function.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_GRAYFRAME</td>
<td width="61%">
<font face="verdana,arial,helvetica" size="2">
&lt;RECT&gt; &amp; &lt;STYLE COLOR=&quot;GRAY&quot;
BORDER-STYLE=&quot;SOLID&quot;&gt;
</font>
<p>&nbsp;</td>
<td width="61%">Specifies a box with a frame drawn with the same color as
the screen background (desktop). This color is gray in the default color
scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_GRAYRECT</td>
<td width="61%"><font face="verdana,arial,helvetica" size="2">&lt;RECT
FILL=&quot;YES&quot;&gt; &amp; &lt;STYLE COLOR=&quot;GRAY&quot;
BORDER-STYLE=&quot;SOLID&quot;&gt;</font></td>
<td width="61%">Specifies a rectangle filled with the current screen
background color. This color is gray in the default color scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_ICON</td>
<td width="61%">&lt;IMAGE&gt;</td>
<td width="61%">Specifies an icon is to be displayed in the dialog box.
The given text is the name of an icon (not a filename) defined elsewhere
in the resource file. The icon can be an animated cursor. The style
ignores the <i>nWidth</i> and <i>nHeight</i> parameters; the control
automatically sizes itself to accommodate the icon.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_LEFT</td>
<td width="61%">TEXT-ALIGN=&quot;LEFT&quot;</td>
<td width="61%">Specifies a simple rectangle and left-aligns the given
text in the rectangle. The text is formatted before it is displayed.
Words that extend past the end of a line are automatically wrapped to
the beginning of the next left-aligned line. Words that are longer than
the width of the control are truncated.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_LEFTNOWORDWRAP</td>
<td width="61%">MULTILINE=&quot;FALSE&quot;</td>
<td width="61%">Specifies a simple rectangle and left-aligns the given
text in the rectangle. Tabs are expanded, but words are not wrapped.
Text that extends past the end of a line is clipped.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_NOPREFIX</td>
<td width="61%"></td>
<td width="61%">Prevents interpretation of any ampersand (&amp;)
characters in the control's text as accelerator prefix characters. These
are displayed with the ampersand removed and the next character in the
string underlined. This static control style may be included with any of
the defined static controls. You can combine SS_NOPREFIX with other
styles. This can be useful when filenames or other strings that may
contain an ampersand (&amp;) must be displayed in a static control in a
dialog box.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_NOTIFY</td>
<td width="61%"></td>
<td width="61%">Sends the parent window <a href="statcon_3z1g.htm">STN_CLICKED</a>,
<a href="statcon_6357.htm">STN_DBLCLK</a>, <a href="statcon_2qcl.htm">STN_DISABLE</a>,
and <a href="statcon_3c2t.htm">STN_ENABLE</a> notification messages when
the user clicks or double-clicks the control.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_OWNERDRAW</td>
<td width="61%"></td>
<td width="61%">Specifies that the owner of the static control is
responsible for drawing the control. The owner window receives a <a href="combobox_3sx9.htm">WM_DRAWITEM</a>
message whenever the control needs to be drawn.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_REALSIZEIMAGE</td>
<td width="61%">&lt;IMAGE AUTOSIZE=&quot;NO&quot;&gt;</td>
<td width="61%">Prevents a static icon or bitmap control (that is, static
controls that have the SS_ICON or SS_BITMAP style) from being resized as
it is loaded or drawn. If the icon or bitmap is larger than the
destination area, the image is clipped.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_RIGHT</td>
<td width="61%">TEXT-ALIGN=&quot;RIGHT&quot;</td>
<td width="61%">Specifies a simple rectangle and right-aligns the given
text in the rectangle. The text is formatted before it is displayed.
Words that extend past the end of a line are automatically wrapped to
the beginning of the next right-aligned line. Words that are longer than
the width of the control are truncated.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_RIGHTJUST</td>
<td width="61%">&lt;IMAGE ..&gt;</td>
<td width="61%">Specifies that the lower right corner of a static control
with the SS_BITMAP or SS_ICON style is to remain fixed when the control
is resized. Only the top and left sides are adjusted to accommodate a
new bitmap or icon.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_SIMPLE</td>
<td width="61%"></td>
<td width="61%">Specifies a simple rectangle and displays a single line of
left-aligned text in the rectangle. The text line cannot be shortened or
altered in any way. The control's parent window or dialog box must not
process the <a href="statcon_6dnn.htm">WM_CTLCOLORSTATIC</a> message.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_SUNKEN</td>
<td width="61%">BORDER-STYLE=&quot;</td>
<td width="61%">Draws a half-sunken border around a static control.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_WHITEFRAME</td>
<td width="61%"><font face="verdana,arial,helvetica" size="2">&lt;RECT&gt;
&amp; &lt;STYLE COLOR=&quot;WHITE&quot;
BORDER-STYLE=&quot;SOLID&quot;&gt;</font></td>
<td width="61%">Specifies a box with a frame drawn with the same color as
the window background. This color is white in the default color scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_WHITERECT</td>
<td width="61%"><font face="verdana,arial,helvetica" size="2">&lt;RECT
FILL=&quot;YES&quot;&gt; &amp; &lt;STYLE COLOR=&quot;WHITE&quot;
BORDER-STYLE=&quot;SOLID&quot;&gt;
</font>
</td>
<td width="61%">Specifies a rectangle filled with the current window
background color. This color is white in the default color scheme.</td>
</tr>
<tr vAlign="top">
<td width="39%">SS_WORDELLIPSIS</td>
<td width="61%">ELLIPSIS=&quot;WORD&quot;</td>
<td width="61%"><b>Windows NT:</b> Truncates text that does not fit and
adds ellipses.</td>
</tr>
</tbody>
</table>
<br>
<font color="#228b22" size="1"><br>
Built on: Monday, November 16, 1998</font>
<h1><a name="_mfc_window_styles"></a>Window Styles</h1>
<ul type="disc">
<li><b>WS_BORDER</b>&nbsp;&nbsp;&nbsp;Creates a window that has a border.<br>
<br>
<li><b>WS_CAPTION</b>&nbsp;&nbsp;&nbsp;Creates a window that has a title bar
(implies the <b>WS_BORDER</b> style). Cannot be used with the <b>WS_DLGFRAME</b>
style.<br>
<br>
<li><b>WS_CHILD</b>&nbsp;&nbsp;&nbsp;Creates a child window. Cannot be used
with the <b>WS_POPUP</b> style.<br>
<br>
<li><b>WS_CLIPCHILDREN</b>&nbsp;&nbsp;&nbsp;Excludes the area occupied by
child windows when you draw within the parent window. Used when you create
the parent window.<br>
<br>
<li><b>WS_CLIPSIBLINGS</b>&nbsp;&nbsp;&nbsp;Clips child windows relative to
each other; that is, when a particular child window receives a paint
message, the <b>WS_CLIPSIBLINGS</b> style clips all other overlapped child
windows out of the region of the child window to be updated. (If <b>WS_CLIPSIBLINGS</b>
is not given and child windows overlap, when you draw within the client area
of a child window, it is possible to draw within the client area of a
neighboring child window.) For use with the <b>WS_CHILD</b> style only.<br>
<br>
<li><b>WS_DISABLED</b>&nbsp;&nbsp;&nbsp;Creates a window that is initially
disabled.<br>
<br>
<li><b>WS_DLGFRAME</b>&nbsp;&nbsp;&nbsp;Creates a window with a double border
but no title.<br>
<br>
<li><b>WS_GROUP</b>&nbsp;&nbsp;&nbsp;Specifies the first control of a group of
controls in which the user can move from one control to the next with the
arrow keys. All controls defined with the <b>WS_GROUP</b> style <b>FALSE</b>
after the first control belong to the same group. The next control with the <b>WS_GROUP</b>
style starts the next group (that is, one group ends where the next begins).<br>
<br>
<li><b>WS_HSCROLL</b>&nbsp;&nbsp;&nbsp;Creates a window that has a horizontal
scroll bar.<br>
<br>
<li><b>WS_MAXIMIZE</b>&nbsp;&nbsp;&nbsp;Creates a window of maximum size.<br>
<br>
<li><b>WS_MAXIMIZEBOX</b>&nbsp;&nbsp;&nbsp;Creates a window that has a
Maximize button.<br>
<br>
<li><b>WS_MINIMIZE</b>&nbsp;&nbsp;&nbsp;Creates a window that is initially
minimized. For use with the <b>WS_OVERLAPPED</b> style only.<br>
<br>
<li><b>WS_MINIMIZEBOX</b>&nbsp;&nbsp;&nbsp;Creates a window that has a
Minimize button.<br>
<br>
<li><b>WS_OVERLAPPED</b>&nbsp;&nbsp;&nbsp;Creates an overlapped window. An
overlapped window usually has a caption and a border.<br>
<br>
<li><b>WS_OVERLAPPEDWINDOW</b>&nbsp;&nbsp;&nbsp;Creates an overlapped window
with the <b>WS_OVERLAPPED</b>, <b>WS_CAPTION</b>, <b>WS_SYSMENU</b>, <b>WS_THICKFRAME</b>,
<b>WS_MINIMIZEBOX</b>, and <b>WS_MAXIMIZEBOX</b> styles.<br>
<br>
<li><b>WS_POPUP</b>&nbsp;&nbsp;&nbsp;Creates a pop-up window. Cannot be used
with the <b>WS_CHILD</b> style.<br>
<br>
<li><b>WS_POPUPWINDOW</b>&nbsp;&nbsp;&nbsp;Creates a pop-up window with the <b>WS_BORDER</b>,
<b>WS_POPUP</b>, and <b>WS_SYSMENU</b> styles. The <b>WS_CAPTION</b> style
must be combined with the <b>WS_POPUPWINDOW</b> style to make the Control
menu visible.<br>
<br>
<li><b>WS_SYSMENU</b>&nbsp;&nbsp;&nbsp;Creates a window that has a
Control-menu box in its title bar. Used only for windows with title bars.<br>
<br>
<li><b>WS_TABSTOP</b>&nbsp;&nbsp;&nbsp;Specifies one of any number of controls
through which the user can move by using the TAB key. The TAB key moves the
user to the next control specified by the <b>WS_TABSTOP</b> style.<br>
<br>
<li><b>WS_THICKFRAME</b>&nbsp;&nbsp;&nbsp;Creates a window with a thick frame
that can be used to size the window.<br>
<br>
<li><b>WS_VISIBLE</b>&nbsp;&nbsp;&nbsp;Creates a window that is initially
visible.<br>
<br>
<li><b>WS_VSCROLL</b>&nbsp;&nbsp;&nbsp;Creates a window that has a vertical
scroll bar.</li>
</ul>
<p><b>See Also</b>&nbsp;&nbsp;&nbsp;<a href="_mfc_cwnd.3a3a.create.htm">CWnd::Create</a>,
<a href="_mfc_cwnd.3a3a.createex.htm">CWnd::CreateEx</a></p>
<h1><a name="_mfc_extended_window_styles"></a>Extended Window Styles</h1>
<ul type="disc">
<li><b>WS_EX_ACCEPTFILES</b>&nbsp;&nbsp;&nbsp;Specifies that a window created
with this style accepts drag-and-drop files.<br>
<br>
<li><b>WS_EX_CLIENTEDGE</b>&nbsp;&nbsp;&nbsp;Specifies that a window has a 3D
look <20> that is, a border with a sunken edge.<br>
<br>
<li><b>WS_EX_CONTEXTHELP</b>&nbsp;&nbsp;&nbsp;Includes a question mark in the
title bar of the window. When the user clicks the question mark, the cursor
changes to a question mark with a pointer. If the user then clicks a child
window, the child receives a <b>WM_HELP</b> message.<br>
<br>
<li><b>WS_EX_CONTROLPARENT</b>&nbsp;&nbsp;&nbsp;Allows the user to navigate
among the child windows of the window by using the TAB key.<br>
<br>
<li><b>WS_EX_DLGMODALFRAME</b>&nbsp;&nbsp;&nbsp;Designates a window with a
double border that may (optionally) be created with a title bar when you
specify the <b>WS_CAPTION</b> style flag in the <i>dwStyle</i> parameter.<br>
<br>
<li><b>WS_EX_LEFT</b>&nbsp;&nbsp;&nbsp;Gives window generic left-aligned
properties. This is the default.<br>
<br>
<li><b>WS_EX_LEFTSCROLLBAR</b>&nbsp;&nbsp;&nbsp;Places a&nbsp; vertical scroll
bar to the left of the client area.<br>
<br>
<li><b>WS_EX_LTRREADING</b>&nbsp;&nbsp;&nbsp;Displays the window text using
left-to-right reading order properties. This is the default.<br>
<br>
<li><b>WS_EX_MDICHILD</b>&nbsp;&nbsp;&nbsp;Creates an MDI child window.<br>
<br>
<li><b>WS_EX_NOPARENTNOTIFY</b>&nbsp;&nbsp;&nbsp;Specifies that a child window
created with this style will not send the <b>WM_PARENTNOTIFY</b> message to
its parent window when the child window is created or destroyed.<br>
<br>
<li><b>WS_EX_OVERLAPPEDWINDOW</b>&nbsp;&nbsp;&nbsp;Combines the <b>WS_EX_CLIENTEDGE</b>
and <b>WS_EX_WINDOWEDGE</b> styles<br>
<br>
<li><b>WS_EX_PALETTEWINDOW</b>&nbsp;&nbsp;&nbsp;Combines the <b>WS_EX_WINDOWEDGE
</b>and <b>WS_EX_TOPMOST</b> styles.<br>
<br>
<li><b>WS_EX_RIGHT</b>&nbsp;&nbsp;&nbsp;Gives a window generic right-aligned
properties. This depends on the window class.<br>
<br>
<li><b>WS_EX_RIGHTSCROLLBAR</b>&nbsp;&nbsp;&nbsp;Places a vertical scroll bar
(if present) to the right of the client area. This is the default.<br>
<br>
<li><b>WS_EX_RTLREADING</b>&nbsp;&nbsp;&nbsp;Displays the window text using
right-to-left reading order properties.<br>
<br>
<li><b>WS_EX_STATICEDGE</b>&nbsp;&nbsp;&nbsp;Creates a window with a
three-dimensional border style intended to be used for items that do not
accept user input.<br>
<br>
<li><b>WS_EX_TOOLWINDOW</b>&nbsp;&nbsp;&nbsp;Creates a tool window, which is a
window intended to be used as a floating toolbar. A tool window has a title
bar that is shorter than a normal title bar, and the window title is drawn
using a smaller font. A tool window does not appear in the task bar or in
the window that appears when the user presses ALT+TAB.<br>
<br>
<li><b>WS_EX_TOPMOST</b>&nbsp;&nbsp;&nbsp;Specifies that a window created with
this style should be placed above all nontopmost windows and stay above them
even when the window is deactivated. An application can use the <b>SetWindowPos</b>
member function to add or remove this attribute.<br>
<br>
<li><b>WS_EX_TRANSPARENT</b>&nbsp;&nbsp;&nbsp;Specifies that a window created
with this style is to be transparent. That is, any windows that are beneath
the window are not obscured by the window. A window created with this style
receives <b>WM_PAINT</b> messages only after all sibling windows beneath it
have been updated.<br>
<br>
<li><b>WS_EX_WINDOWEDGE</b>&nbsp;&nbsp;&nbsp;Specifies that a window has a
border with a raised edge.</li>
</ul>
<p><b>See Also</b>&nbsp;&nbsp;&nbsp;<a href="_mfc_cwnd.3a3a.createex.htm">CWnd::CreateEx</a></p>
</font>
<h1>Common Control Window Classes</h1>
The following window class names are provided by the common control library:
<table>
<tbody>
<tr>
<td>ANIMATE_CLASS</td>
<td><font face="verdana,arial,helvetica" size="2">RCML
</font>
</td>
<td>Creates animation controls. These controls silently display an audio
video interleaved (AVI) clip.</td>
</tr>
<tr>
<td>DATETIMEPICK_CLASS</td>
<td></td>
<td>Creates date and time picker controls. These controls provide a simple
and intuitive interface to exchange date and time information with a
user.</td>
</tr>
<tr>
<td>HOTKEY_CLASS</td>
<td></td>
<td>Creates hot key controls. These controls make it easy for the user to
define hot keys.</td>
</tr>
<tr>
<td>MONTHCAL_CLASS</td>
<td></td>
<td>Creates month calendar controls. These controls provide a simple and
intuitive way for a user to select a date from a familiar interface.</td>
</tr>
<tr>
<td>PROGRESS_CLASS</td>
<td></td>
<td>Creates progress bars. These controls indicate the progress of a
lengthy operation.</td>
</tr>
<tr>
<td>REBARCLASSNAME</td>
<td></td>
<td>Creates rebar controls. These controls act as a container for child
windows.</td>
</tr>
<tr>
<td>STATUSCLASSNAME</td>
<td></td>
<td>Creates status windows. These controls display status information in a
horizontal window.</td>
</tr>
<tr>
<td>TOOLBARCLASSNAME</td>
<td></td>
<td>Creates toolbars. These controls contain buttons that carry out menu
commands.</td>
</tr>
<tr>
<td>TOOLTIPS_CLASS</td>
<td></td>
<td>Creates tooltip controls. These controls display a small pop-up window
containing a line of text that describes the purpose of a tool in an
application.</td>
</tr>
<tr>
<td>TRACKBAR_CLASS</td>
<td></td>
<td>Creates trackbars. These controls let the user select from a range of
values by moving a slider.</td>
</tr>
<tr>
<td>UPDOWN_CLASS</td>
<td></td>
<td>Creates up-down controls. These controls combine a pair of arrows with
an edit control. Clicking the arrows increments or decrements the value
in the edit control.</td>
</tr>
<tr>
<td>WC_COMBOBOXEX</td>
<td></td>
<td>Creates ComboBoxEx controls. These controls provide an extension of
the combo box control that provides native support for item images.</td>
</tr>
<tr>
<td>WC_HEADER</td>
<td></td>
<td>Creates header controls. These controls display headings at the top of
columns of information and let the user sort the information by clicking
the headings.</td>
</tr>
<tr>
<td>WC_IPADDRESS</td>
<td></td>
<td>Creates IP address controls. These controls are similar to an edit
control, but they allow you to enter a numeric address in Internet
protocol (IP) format.</td>
</tr>
<tr>
<td>WC_LISTVIEW</td>
<td></td>
<td>Creates list view controls. These controls display a collection of
items, each consisting of an icon and a label, and provide several ways
to arrange the items.</td>
</tr>
<tr>
<td>WC_PAGESCROLLER</td>
<td></td>
<td>Creates pager controls. These controls are used to contain and scroll
another window.</td>
</tr>
<tr>
<td>WC_TABCONTROL</td>
<td></td>
<td>Creates tab controls. These controls define multiple pages for the
same area of a window or dialog box. Each page consists of a set of
information or a group of controls that an application displays when the
user selects the corresponding tab.</td>
</tr>
<tr>
<td>WC_TREEVIEW</td>
<td></td>
<td>Creates tree view controls. These controls display a hierarchical list
of items. Each item consists of a label and an optional bitmap.</td>
</tr>
</tbody>
</table>
<h1>Animation Control Styles</h1>
<p>The following window styles are used with animation controls:</p>
<dl>
<dt><b><a name="ACS_AUTOPLAY">ACS_AUTOPLAY</a></b>
<dd>Starts playing the animation as soon as the AVI clip is opened.
<dt><b><a name="ACS_CENTER">ACS_CENTER</a></b>
<dd>Centers the animation in the animation control's window.
<dt><b><a name="ACS_TIMER">ACS_TIMER</a></b>
<dd>By default, the control creates a thread to play the AVI clip. If you set
this flag, the control plays the clip without creating a thread; internally
the control uses a Win32 timer to synchronize playback. <!-- @Begin changes to text. -->
<dt><b><a name="ACS_TRANSPARENT">ACS_TRANSPARENT</a></b>
<dd>Allows you to match an animation's background color to that of the
underlying window, creating a &quot;transparent&quot; background. The
control will send a <!-- a-link -->
WM_CTLCOLORSTATIC message to its parent. You should return a handle to a
brush with the appropriate background color. The control interprets the
upper-left pixel of the first frame as the animation's default background
color. It will remap all pixels with that color to the value you supplied in
response to WM_CTLCOLORSTATIC. <!-- @End changes to text -->
</dd>
</dl>
<h1><a name="_win32_ComboEx_ExtendedStyles"></a>ComboBoxEx control extended
styles</h1>
<p>ComboBoxEx controls support most standard combo box control styles.
Additionally, ComboBoxEx controls support the following extended styles, which
you can set and retrieve by using <a href="messages/CBEM_SETEXTENDEDSTYLE.htm#CBEM_SETEXTENDEDSTYL">CBEM_SETEXTENDEDSTYLE</a>
and <a href="messages/CBEM_GETEXTENDEDSTYLE.htm#CBEM_GETEXTENDEDSTYL">CBEM_GETEXTENDEDSTYLE</a>
messages:
<dl>
<dt><b><a name="CBES_EX_CASESENSITIV">CBES_EX_CASESENSITIVE</a></b>
<dd>String searches in the list will be case sensitive. This includes searches
as a result of text being typed in the edit box and the CB_FINDSTRINGEXACT
message. <!-- @Begin changes to text. -->
<dt><b><a name="CBES_EX_NOEDITIMAGE">CBES_EX_NOEDITIMAGE</a></b>
<dd>The edit box and the dropdown list will not display item images.
<dt><b><a name="CBES_EX_NOEDITIMAGEI">CBES_EX_NOEDITIMAGEINDENT</a></b>
<dd>The edit box and the dropdown list will not display item images. <!-- @End changes to text -->
<dt><b><a name="CBES_EX_NOSIZELIMIT">CBES_EX_NOSIZELIMIT</a></b>
<dd>Allows the ComboBoxEx control to be vertically sized smaller than its
contained combo box control. If the ComboBoxEx is sized smaller than the
combo box, the combo box will be clipped.
<dt><b><a name="CBES_EX_PATHWORDBREA">CBES_EX_PATHWORDBREAKPROC</a></b>
<dd><b>Windows NT only.</b> The edit box will use the slash (/), backslash
(\), and period (.) characters as word delimiters. This makes keyboard
shortcuts for word-by-word cursor movement (<small>CTRL+ARROW</small>)
effective in path names and URLs.</dd>
</dl>
<!-- @Begin changes to text. -->
<p><b>Note:</b> if you try to set an extended style for a ComboBoxEx control
created with the CBS_SIMPLE style, it may not repaint properly. The CBS_SIMPLE
style also does not work properly with the CBES_EX_PATHWORDBREAKPROC extended
style.</p>
<!-- @End changes to text -->
<h1><a name="_win32_dtp_styles"></a>Date and time picker control styles</h1>
<p>The window styles listed here are specific to date and time picker controls.
The DTS_XXXFORMAT styles that define the display format cannot be combined. If
none of the format styles are suitable, use a <a href="messages/DTM_SETFORMAT.htm">DTM_SETFORMAT</a>
message to define a custom format.
<table>
<tbody>
<tr>
<td><b><a name="DTS_APPCANPARSE">DTS_APPCANPARSE</a></b></td>
<td><font face="verdana,arial,helvetica" size="2">RCML
</font>
</td>
<td>Allows the owner to parse user input and take necessary action. It
enables users to edit within the client area of the control when they
press the F2 key. The control sends <a href="notifications/DTN_USERSTRING.htm#DTN_USERSTRING">DTN_USERSTRING</a>
notification messages when users are finished.</td>
</tr>
<tr>
<td><b><a name="DTS_LONGDATEFORMAT">DTS_LONGDATEFORMAT</a></b></td>
<td></td>
<td>Displays the date in long format. The default format string for this
style is defined by LOCALE_SLONGDATEFORMAT, which produces output like
&quot;Friday, April 19, 1996&quot;.</td>
</tr>
<tr>
<td><b><a name="DTS_RIGHTALIGN">DTS_RIGHTALIGN</a></b></td>
<td></td>
<td>The drop-down month calendar will be right-aligned with the control
instead of left-aligned, which is the default.</td>
</tr>
<tr>
<td><b><a name="DTS_SHOWNONE">DTS_SHOWNONE</a></b></td>
<td></td>
<td>It is possible to have no date currently selected in the control. With
this style, the control displays a check box that users can check once
they have entered or selected a date. Until this check box is checked,
the application will not be able to retrieve the date from the control
because, in essence, the control has no date. This state can be set with
the <a href="messages/DTM_SETSYSTEMTIME.htm#DTM_SETSYSTEMTIME">DTM_SETSYSTEMTIME</a>
message or queried with the <a href="messages/DTM_GETSYSTEMTIME.htm#DTM_GETSYSTEMTIME">DTM_GETSYSTEMTIME</a>
message.</td>
</tr>
<tr>
<td><b><a name="DTS_SHORTDATEFORMAT">DTS_SHORTDATEFORMAT</a></b></td>
<td></td>
<td>Displays the date in short format. The default format string for this
style is defined by LOCALE_SSHORTDATE, which produces output like
&quot;4/19/96&quot;.</td>
</tr>
<tr>
<td><b><a name="DTS_SHORTDATECENTURYFORMAT">DTS_SHORTDATECENTURYFORMAT</a></b></td>
<td></td>
<td><b>Version 5.0.</b> Similar to the DTS_SHORTDATEFORMAT style, except
the year is a four-digit field. The default format string for this style
is based on LOCALE_SSHORTDATE. The output looks like:
&quot;4/19/1996&quot;.</td>
</tr>
<tr>
<td><b><a name="DTS_TIMEFORMAT">DTS_TIMEFORMAT</a></b></td>
<td></td>
<td>Displays the time. The default format string for this style is defined
by LOCALE_STIMEFORMAT, which produces output like &quot;5:31:42
PM&quot;.</td>
</tr>
<tr>
<td><b><a name="DTS_UPDOWN">DTS_UPDOWN</a></b></td>
<td></td>
<td>Places an up-down control to the right of the DTP control to modify
date-time values. This style can be used in place of the drop-down month
calendar, which is the default style.</td>
</tr>
</tbody>
</table>
<h1>Header Control Styles</h1>
<p>Header controls have a number of styles, described below, that determine the
control's appearance and behavior. You set the initial styles when you create
the header control. To retrieve and change the styles after creating the
control, use the <!-- a-link -->
<b>GetWindowLong</b> and <!-- a-link -->
<b>SetWindowLong</b> functions.
<dl>
<dt><b><a name="HDS_BUTTONS">HDS_BUTTONS</a></b>
<dd>Each item in the control looks and behaves like a push button. This style
is useful if an application carries out a task when the user clicks an item
in the header control. For example, an application could sort information in
the columns differently depending on which item the user clicks.
<dt><b><a name="HDS_DRAGDROP">HDS_DRAGDROP</a></b>
<dd><b>Version 4.70</b>. Allows drag-and-drop reordering of header items.
<dt><b><a name="HDS_FILTERBAR">HDS_FILTERBAR</a></b>
<dd><b>Version 5.00</b>. Include a filter bar as part of the standard header
control. This bar allows users to conveniently apply a filter to the
display. Calls to <a href="messages/HDM_LAYOUT.htm#HDM_LAYOUT">HDM_LAYOUT</a>
will yield a new size for the control and cause the list view to update.
<dt><b><a name="HDS_FULLDRAG">HDS_FULLDRAG</a></b>
<dd><b>Version 4.70</b>. Causes the header control to display column contents
even while the user resizes a column.
<dt><b><a name="HDS_HIDDEN">HDS_HIDDEN</a></b>
<dd>Indicates a header control that is intended to be hidden. This style does
not hide the control. Instead, when you send the <a href="messages/HDM_LAYOUT.htm#HDM_LAYOUT">HDM_LAYOUT</a>
message to a header control with the HDS_HIDDEN style, the control returns
zero in the <b>cy</b> member of the <!-- a-link -->
<b>WINDOWPOS</b> structure. You would then hide the control by setting its
height to zero. This can be useful when you want to use the control as an
information container instead of a visual control.
<dt><b><a name="HDS_HORZ">HDS_HORZ</a></b>
<dd>Creates a header control with a horizontal orientation.
<dt><b><a name="HDS_HOTTRACK">HDS_HOTTRACK</a></b>
<dd><b>Version 4.70</b>. Enables hot tracking.</dd>
</dl>
<h1>List view window styles</h1>
<p>The following window styles are specific to list view controls.
<dl>
<dt><b><a name="LVS_ALIGNLEFT">LVS_ALIGNLEFT</a></b>
<dd>Items are left-aligned in icon and small icon view.
<dt><b><a name="LVS_ALIGNTOP">LVS_ALIGNTOP</a></b>
<dd>Items are aligned with the top of the list view control in icon and small
icon view.
<dt><b><a name="LVS_AUTOARRANGE">LVS_AUTOARRANGE</a></b>
<dd>Icons are automatically kept arranged in icon and small icon view.
<dt><b><a name="LVS_EDITLABELS">LVS_EDITLABELS</a></b>
<dd>Item text can be edited in place. The parent window must process the <a href="notifications/LVN_ENDLABELEDIT.htm#LVN_ENDLABELEDIT">LVN_ENDLABELEDIT</a>
notification message.
<dt><b><a name="LVS_ICON">LVS_ICON</a></b>
<dd>Icon view.
<dt><b><a name="LVS_LIST">LVS_LIST</a></b>
<dd>List view.
<dt><b><a name="LVS_NOCOLUMNHEADER">LVS_NOCOLUMNHEADER</a></b>
<dd>Column headers are not displayed in report view. By default, columns have
headers in report view.
<dt><b><a name="LVS_NOLABELWRAP">LVS_NOLABELWRAP</a></b>
<dd>Item text is displayed on a single line in icon view. By default, item
text may wrap in icon view.
<dt><b><a name="LVS_NOSCROLL">LVS_NOSCROLL</a></b>
<dd>Scrolling is disabled. All items must be within the client area.
<dt><b><a name="LVS_NOSORTHEADER">LVS_NOSORTHEADER</a></b>
<dd>Column headers do not work like buttons. This style can be used if
clicking a column header in report view does not carry out an action, such
as sorting.
<dt><b><a name="LVS_OWNERDATA">LVS_OWNERDATA</a></b>
<dd><b>Version 4.70</b>. Specifies a virtual list view control. For more
information about this list control style, see <a href="Updates.htm#vlv_description">Virtual
list view description</a>.
<dt><b><a name="LVS_OWNERDRAWFIXED">LVS_OWNERDRAWFIXED</a></b>
<dd>The owner window can paint items in report view. The list view control
sends a <!-- a-link -->
<b>WM_DRAWITEM</b> message to paint each item; it does not send separate
messages for each subitem. The <b>itemData</b> member of the <!-- a-link -->
<b>DRAWITEMSTRUCT</b> structure contains the item data for the specified
list view item.
<dt><b><a name="LVS_REPORT">LVS_REPORT</a></b>
<dd>Report view. When using the LVS_REPORT style with a list view control, the
first column is always left-aligned. You cannot use LVCFMT_RIGHT to change
this alignment.
<dt><b><a name="LVS_SHAREIMAGELISTS">LVS_SHAREIMAGELISTS</a></b>
<dd>The image list will not be deleted when the control is destroyed. This
style enables the use of the same image lists with multiple list view
controls.
<dt><b><a name="LVS_SHOWSELALWAYS">LVS_SHOWSELALWAYS</a></b>
<dd>The selection, if any, is always shown, even if the control does not have
the focus.
<dt><b><a name="LVS_SINGLESEL">LVS_SINGLESEL</a></b>
<dd>Only one item at a time can be selected. By default, multiple items may be
selected.
<dt><b><a name="LVS_SMALLICON">LVS_SMALLICON</a></b>
<dd>Small icon view.
<dt><b><a name="LVS_SORTASCENDING">LVS_SORTASCENDING</a></b>
<dd>Item indices are sorted based on item text in ascending order.
<dt><b><a name="LVS_SORTDESCENDING">LVS_SORTDESCENDING</a></b>
<dd>Item indices are sorted based on item text in descending order.</dd>
</dl>
<h4>Remarks</h4>
<!-- @Begin changes to text. -->
<p>For the LVS_SORTASCENDING AND LVS_SORTDESCENDING styles, item indices are
sorted based on item text in ascending or descending order, respectively.
Because the LVS_LIST and LVS_REPORT views display items in in the same order as
their indices the results of sorting are immediately visible to the user. The
LVS_ICON and LVS_SMALLICON views do not use item indices to determine the
position of icons. With those views, the results of sorting are not visible to
the user.</p>
<!-- @End changes to text -->
<p>You can use the <b><a name="LVS_TYPEMASK">LVS_TYPEMASK</a></b> mask to
isolate the window styles that correspond to the current view: <a href="Styles.htm#LVS_ICON">LVS_ICON</a>,
<a href="Styles.htm#LVS_SMALLICON">LVS_SMALLICON</a>, <a href="Styles.htm#LVS_LIST">LVS_LIST</a>,
and <a href="Styles.htm#LVS_REPORT">LVS_REPORT</a>.
<p>You can use the <b><a name="LVS_ALIGNMASK">LVS_ALIGNMASK</a></b> mask to
isolate the window styles that specify the alignment of items: <a href="Styles.htm#LVS_ALIGNLEFT">LVS_ALIGNLEFT</a>
and <a href="Styles.htm#LVS_ALIGNTOP">LVS_ALIGNTOP</a>.
<p>You can use the <b><a name="LVS_TYPESTYLEMASK">LVS_TYPESTYLEMASK</a></b> mask
to isolate the window styles that control item alignment (<a href="Styles.htm#LVS_ALIGNLEFT">LVS_ALIGNLEFT</a>
and <a href="Styles.htm#LVS_ALIGNTOP">LVS_ALIGNTOP</a>) and those that control
header appearance and behavior (<a href="Styles.htm#LVS_NOCOLUMNHEADER">LVS_NOCOLUMNHEADER</a>
and <a href="Styles.htm#LVS_NOSORTHEADER">LVS_NOSORTHEADER</a>).</p>
<h1><a name="_win32_lv_extended_styles"></a>Extended list view styles</h1>
<p>List view control styles have been extended. To use these new styles, use the
<a href="messages/LVM_SETEXTENDEDLISTVIEWSTYLE.htm#LVM_SETEXTENDEDLISTV">LVM_SETEXTENDEDLISTVIEWSTYLE</a>
message or one of the <a href="macros/ListView_SetExtendedListViewStyle.htm#ListView_SetExtended">ListView_SetExtendedListViewStyle</a>
or <a href="macros/ListView_SetExtendedListViewStyleEx.htm#ListView_SetExtended">ListView_SetExtendedListViewStyleEx</a>
macros.
<dl>
<dt><b><a name="LVS_EX_CHECKBOXES">LVS_EX_CHECKBOXES</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.70">Version
4.70</a></b>. Enables check boxes for items in a list view control.
Effectively, when set to this style, the control will create and set a state
image list using <!-- a-link -->
<b>DrawFrameControl</b>. Check boxes are visible and functional with all
list view modes. The state of the check box for a given item is obtained
using the <a href="macros/ListView_GetCheckState.htm#ListView_GetCheckSta">ListView_GetCheckState</a>
macro.
<p>Note: To set the state of the item checkbox, use the following macro.
<pre>#ifndef ListView_SetCheckState
#define ListView_SetCheckState(hwndLV, i, fCheck) \
ListView_SetItemState(hwndLV, i, \
INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif
</pre>
<dt><b><a name="LVS_EX_FLATSB">LVS_EX_FLATSB</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.71">Version
4.71</a></b>. Enables flat scroll bars in the list view. If you need more
control over the appearance of the list view's scroll bars, you should
manipulate the list view's scroll bars directly using the <a href="../flatsb/RefList.htm#FlatSB_ref">Flat
Scroll Bar APIs</a>.
<dt><b><a name="LVS_EX_FULLROWSELECT">LVS_EX_FULLROWSELECT</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.70">Version
4.70</a></b>. When an item is selected, the item and all its subitems are
highlighted. This style is available only in conjunction with the <a href="Styles.htm#LVS_REPORT">LVS_REPORT</a>
style.
<dt><b><a name="LVS_EX_GRIDLINES">LVS_EX_GRIDLINES</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.70">Version
4.70</a></b>. Displays gridlines around items and subitems. This style is
available only in conjunction with the <a href="Styles.htm#LVS_REPORT">LVS_REPORT</a>
style.
<dt><b><a name="LVS_EX_HEADERDRAGDRO">LVS_EX_HEADERDRAGDROP</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.70">Version
4.70</a></b>. Enables drag-and-drop reordering of columns in a list view
control. This style is only available to list view controls that use the <a href="Styles.htm#LVS_REPORT">LVS_REPORT</a>
style.
<dt><b><a name="LVS_EX_INFOTIP">LVS_EX_INFOTIP</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.71">Version
4.71</a></b>. When a list view control uses the LVS_EX_INFOTIP style, the <a href="notifications/LVN_GETINFOTIP.htm#LVN_GETINFOTIP">LVN_GETINFOTIP</a>
notification message is sent to the parent window before displaying an
item's tooltip. <!-- @Begin changes to text. -->
<dt><b><a name="LVS_EX_LABELTIP">LVS_EX_LABELTIP</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 5.0</a></b>. If a
partially hidden label in any list view mode lacks tooltip text, the list
view control will unfold the label. If this style is not set, the list view
control will unfold partly hidden labels only for the large icon mode. <!-- @End changes to text -->
<dt><b><a name="LVS_EX_MULTIWORKAREA">LVS_EX_MULTIWORKAREAS</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.71">Version
4.71</a></b>. If the list view control has the <a href="Styles.htm#LVS_AUTOARRANGE">LVS_AUTOARRANGE</a>
style, the control will not autoarrange its icons until one or more work
areas are defined (see <a href="messages/LVM_SETWORKAREAS.htm#LVM_SETWORKAREAS">LVM_SETWORKAREAS</a>).
To be effective, this style must be set before any work areas are defined
and any items have been added to the control.
<dt><b><a name="LVS_EX_ONECLICKACTIV">LVS_EX_ONECLICKACTIVATE</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a></b>. The
list view control sends an <a href="notifications/LVN_ITEMACTIVATE.htm#LVN_ITEMACTIVATE">LVN_ITEMACTIVATE</a>
notification message to the parent window when the user clicks an item. This
style also enables <i>hot tracking</i> in the list view control. Hot
tracking means that when the cursor moves over an item, it is highlighted
but not selected. See the <a href="#Remarks">Remarks</a> for a discussion of
item activation.
<dt><b><a name="LVS_EX_REGIONAL">LVS_EX_REGIONAL</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie" title="Definition for the Comctl32.dll version 4.71">Version
4.71</a></b>. The list view will create a region that includes only the item
icons and text and set its window region to that using <!-- a-link -->
<b>SetWindowRgn</b>. This will exclude any area that is not part of an item
from the window region. This style is only available to list view controls
that use the <a href="Styles.htm#LVS_ICON">LVS_ICON</a> style.
<dt><b><a name="LVS_EX_SUBITEMIMAGES">LVS_EX_SUBITEMIMAGES</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a></b>. Allows
images to be displayed for subitems. This style is available only in
conjunction with the <a href="Styles.htm#LVS_REPORT">LVS_REPORT</a> style.
<dt><b><a name="LVS_EX_TRACKSELECT">LVS_EX_TRACKSELECT</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a></b>.
Enables hot-track selection in a list view control. Hot track selection
means that an item is automatically selected when the cursor remains over
the item for a certain period of time. The delay can be changed from the
default system setting with a <a href="messages/LVM_SETHOVERTIME.htm#LVM_SETHOVERTIME">LVM_SETHOVERTIME</a>
message. This style applies to all styles of list view control. You can
check whether or not hot-track selection is enabled by calling <!-- a-link -->
<b>SystemParametersInfo</b>.
<dt><b><a name="LVS_EX_TWOCLICKACTIV">LVS_EX_TWOCLICKACTIVATE</a></b>&nbsp;&nbsp;&nbsp;
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a></b>. The
list view control sends an <a href="notifications/LVN_ITEMACTIVATE.htm#LVN_ITEMACTIVATE">LVN_ITEMACTIVATE</a>
notification message to the parent window when the user double-clicks an
item. This style also enables <i>hot tracking</i> in the list view control.
Hot tracking means that when the cursor moves over an item, it is
highlighted but not selected. See the <a href="#Remarks">Remarks</a> for a
discussion of item activation. <!-- @Begin changes to text. -->
<dt><b><a name="LVS_EX_UNDERLINECOLD">LVS_EX_UNDERLINECOLD</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a></b>. Causes
non-hot items that are activatable to be displayed with underlined text.
This style requires that <a href="Ex_Styles.htm#LVS_EX_TWOCLICKACTIV">LVS_EX_TWOCLICKACTIVATE</a>
also be set. See the <a href="#Remarks">Remarks</a> for a discussion of item
activation.
<dt><b><a name="LVS_EX_UNDERLINEHOT">LVS_EX_UNDERLINEHOT</a></b>
<dd><b><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a></b>. Causes
hot items that are activatable to be displayed with underlined text. This
style requires that <a href="Ex_Styles.htm#LVS_EX_ONECLICKACTIV">LVS_EX_ONECLICKACTIVATE</a>
or <a href="Ex_Styles.htm#LVS_EX_TWOCLICKACTIV">LVS_EX_TWOCLICKACTIVATE</a>
also be set. See the <a href="#Remarks">Remarks</a> for a discussion of item
activation. <!-- @End changes to text -->
</dd>
</dl>
<!-- @Begin changes to text. -->
<h4><a name="Remarks">Remarks</a></h4>
<!-- "activatable" is rather clumsy, but I can't think of anything better offhand. Suggestions -->
<p>An item becomes <i>hot</i> when the mouse hovers over it. If hot-tracking is
enabled, hot items will be highlighted, but the user must still click the item
at least once to activate it. <i>Activating</i> an item causes the list view
control to send an <a href="Notifications/LVN_ITEMACTIVATE.htm">LVN_ITEMACTIVATE</a>
notification. An item is <i>activatable</i> when it is in a state where a single
click will activate it.</p>
<p>If the <a href="#LVS_EX_ONECLICKACTIVATE">LVS_EX_ONECLICKACTIVATE</a> style
is set, only one click is required to activate any item, so all items are
activatable. If the <a href="#LVS_EX_TWOCLICKACTIVATE">LVS_EX_TWOCLICKACTIVATE</a>
style is set, two clicks are required to activate an item. With this style, the
item becomes activatable only after it has been clicked once.</p>
<p>Setting the <a href="#LVS_EX_UNDERLINEHOT">LVS_EX_UNDERLINEHOT</a> style will
cause the text of a hot activatable item to be underlined. Setting the <a href="#LVS_EX_UNDERLINECOLD">LVS_EX_UNDERLINECOLD</a>
style will cause the text of items that are activatable but not hot to be
underlined.</p>
<!-- @End changes to text -->
<h1><a name="_win32_mc_styles"></a>Month calendar control styles</h1>
<p>The following are the styles used with month calendar controls.
<dl>
<dt><b><a name="MCS_DAYSTATE">MCS_DAYSTATE</a></b>
<dd><b>Version 4.70</b>. The month calendar will send <a href="notifications/MCN_GETDAYSTATE.htm#MCN_GETDAYSTATE">MCN_GETDAYSTATE</a>
notifications to request information about which days should be displayed in
bold. For more information about supporting this style, see <a href="MonthCal.htm#mc_processing_MCN_GETDAYSTATE">Processing
the MCN_GETDAYSTATE Notification Message</a>.
<dt><b><a name="MCS_MULTISELECT">MCS_MULTISELECT</a></b>
<dd><b>Version 4.70</b>. The month calendar will allow the user to select a
range of dates within the control. By default, the maximum range is one
week. You can change the maximum range that can be selected by using the <a href="messages/MCM_SETMAXSELCOUNT.htm#MCM_SETMAXSELCOUNT">MCM_SETMAXSELCOUNT</a>
message.
<dt><b><a name="MCS_NOTODAY">MCS_NOTODAY</a></b>
<dd><b>Version 4.70</b>. The month calendar control will not display the
&quot;today&quot; date at the bottom of the control.
<dt><b><a name="MCS_NOTODAYCIRCLE">MCS_NOTODAYCIRCLE</a></b>
<dd><b>Version 4.70</b>. The month calendar control will not circle the
&quot;today&quot; date. <!-- @Begin changes to text. -->
<dt><b><a name="MCS_WEEKNUMBERS">MCS_WEEKNUMBERS</a></b>
<dd><b>Version 4.70</b>. The month calendar control will display week numbers
(1-52) to the left of each row of days. Week 1 is defined as the first week
that contains at least four days. <!-- @End changes to text -->
</dd>
</dl>
<h1>Pager Control Styles</h1>
<p>The following window styles are used when creating pager controls.
<table>
<tbody>
<tr>
<td><b><a name="PGS_AUTOSCROLL">PGS_AUTOSCROLL</a></b></td>
<td>The pager control will scroll when the user hovers the mouse over one
of the scroll buttons.</td>
</tr>
<tr>
<td><b><a name="PGS_DRAGNDROP">PGS_DRAGNDROP</a></b></td>
<td>The contained window can be a drag-and-drop target. The pager control
will automatically scroll if an item is dragged from outside the pager
over one of the scroll buttons.</td>
</tr>
<tr>
<td><b><a name="PGS_HORZ">PGS_HORZ</a></b></td>
<td>Creates a pager control that can be scrolled horizontally. This style
and the <a href="Styles.htm#PGS_VERT">PGS_VERT</a> style are mutually
exclusive and cannot be combined.</td>
</tr>
<tr>
<td><b><a name="PGS_VERT">PGS_VERT</a></b></td>
<td>Creates a pager control that can be scrolled vertically. This is the
default direction if no direction style is specified. This style and the
<a href="Styles.htm#PGS_HORZ">PGS_HORZ</a> style are mutually exclusive
and cannot be combined.</td>
</tr>
</tbody>
</table>
<h1>Progress Bar Control Styles</h1>
<p>Progress bar controls now support control styles. You can set progress bar
styles in the same way as other common controls (<!-- a-link -->
<b>CreateWindowEx</b>, <!-- a-link -->
<b>GetWindowLong</b>, <!-- a-link -->
<b>SetWindowLong</b>). The following are the supported styles:
<table>
<tbody>
<tr>
<td><b><a name="PBS_SMOOTH">PBS_SMOOTH</a></b></td>
<td><b>Version 4.70</b>. The progress bar displays progress status in a
smooth scrolling bar instead of the default segmented bar.</td>
</tr>
<tr>
<td><b><a name="PBS_VERTICAL">PBS_VERTICAL</a></b></td>
<td><b>Version 4.70</b>. The progress bar displays progress status
vertically, from bottom to top.</td>
</tr>
</tbody>
</table>
<h1><a name="_win32_rb_styles"></a>Rebar Control Styles</h1>
Rebar controls support a variety of control styles in addition to standard
window styles.
<table>
<tbody>
<tr>
<td><b><a name="RBS_AUTOSIZE">RBS_AUTOSIZE</a></b></td>
<td><font face="verdana,arial,helvetica" size="2">RCML
</font>
</td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a>. The rebar
control will automatically change the layout of the bands when the size
or position of the control changes. An <a href="notifications/RBN_AUTOSIZE.htm#RBN_AUTOSIZE">RBN_AUTOSIZE</a>
notification will be sent when this occurs.</td>
</tr>
<tr>
<td><b><a name="RBS_BANDBORDERS">RBS_BANDBORDERS</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a>. The rebar
control displays narrow lines to separate adjacent bands.</td>
</tr>
<tr>
<td><b><a name="RBS_DBLCLKTOGGLE">RBS_DBLCLKTOGGLE</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a>. The rebar
band will toggle its maximized or minimized state when the user
double-clicks on the band. Without this style, the maximized or
minimized state is toggled when the user single-clicks on the band.</td>
</tr>
<tr>
<td><b><a name="RBS_FIXEDORDER">RBS_FIXEDORDER</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a>. The rebar
control always displays bands in the same order. You can move bands to
different rows, but the band order is static.</td>
</tr>
<tr>
<td><b><a name="RBS_REGISTERDROP">RBS_REGISTERDROP</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a>. The rebar
control generates <!-- a-link -->
<b>RBN_GETOBJECT</b> notification messages when an object is dragged
over a band in the control. To receive the <a href="notifications/RBN_GETOBJECT.htm#RBN_GETOBJECT">RBN_GETOBJECT</a>
notifications, initialize OLE with a call to <!-- a-link -->
<b>OleInitialize</b> or <!-- a-link -->
<b>CoInitialize</b>.</td>
</tr>
<tr>
<td><b><a name="RBS_TOOLTIPS">RBS_TOOLTIPS</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a>. Not yet
supported.</td>
</tr>
<tr>
<td><b><a name="RBS_VARHEIGHT">RBS_VARHEIGHT</a></b></td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.70</a>. The rebar
control displays bands at the minimum required height, when possible.
Without this style, the rebar control displays all bands at the same
height, using the height of the tallest visible band to determine the
height of other bands.</td>
</tr>
<tr>
<td><b><a name="RBS_VERTICALGRIPPER">RBS_VERTICALGRIPPER</a></b>&nbsp;&nbsp;</td>
<td></td>
<td><a href="../common/Common.htm#cc_win32_ie">Version 4.71</a>. The size
grip will be displayed vertically instead of horizontally in a vertical
rebar control. This style is ignored for rebar controls that do not have
the <a href="../common/Styles.htm#CCS_VERT">CCS_VERT</a> style.</td>
</tr>
</tbody>
</table>
<h1><a name="_win32_tkb_styles"></a>Trackbar Control Styles</h1>
<p>This section contains information about the styles used with trackbar
controls.
<dl>
<dt><b><a name="TBS_AUTOTICKS">TBS_AUTOTICKS</a></b>
<dd>The trackbar control will have a tick mark for each increment in its range
of values.
<dt><b><a name="TBS_BOTH">TBS_BOTH</a></b>
<dd>The trackbar control will display tick marks on both sides of the control.
This will be both top and bottom when used with TBS_HORZ or both left and
right if used with TBS_VERT.
<dt><b><a name="TBS_BOTTOM">TBS_BOTTOM</a></b>
<dd>The trackbar control will display tick marks below the control. This style
is only valid with TBS_HORZ.
<dt><b><a name="TBS_ENABLESELRANGE">TBS_ENABLESELRANGE</a></b>
<dd>The trackbar control can display a selection range only. The tick marks at
the starting and ending positions of a selection range are displayed as
triangles (instead of vertical dashes), and the selection range is
highlighted.
<dt><b><a name="TBS_FIXEDLENGTH">TBS_FIXEDLENGTH</a></b>
<dd>The trackbar control allows the size of the slider to be changed with the <a href="messages/TBM_SETTHUMBLENGTH.htm#TBM_SETTHUMBLENGTH">TBM_SETTHUMBLENGTH</a>
message.
<dt><b><a name="TBS_HORZ">TBS_HORZ</a></b>
<dd>The trackbar control will be oriented vertically. This is the default
orientation.
<dt><b><a name="TBS_LEFT">TBS_LEFT</a></b>
<dd>The trackbar control will display tick marks to the left of the control.
This style is only valid with TBS_VERT.
<dt><b><a name="TBS_NOTHUMB">TBS_NOTHUMB</a></b>
<dd>The trackbar control does not display a slider.
<dt><b><a name="TBS_NOTICKS">TBS_NOTICKS</a></b>
<dd>The trackbar control will not display any tick marks. <!-- @Begin changes to text. -->
<dt><b><a name="TBS_REVERSED">TBS_REVERSED</a></b>
<dd><b>Version 5.0. </b>This style bit is used for &quot;reversed&quot;
trackbars, where a smaller number indicates &quot;higher&quot; and a larger
number indicates &quot;lower&quot;. It has no effect on the control, but is
simply a label that can be checked to determine whether a trackbar is normal
or reversed. <!-- @End changes to text -->
<dt><b><a name="TBS_RIGHT">TBS_RIGHT</a></b>
<dd>The trackbar control will display tick marks to the right of the control.
This style is only valid with TBS_VERT.
<dt><b><a name="TBS_TOOLTIPS">TBS_TOOLTIPS</a></b>
<dd><b>Version 4.70</b>. The trackbar control will support tooltips. When a
trackbar control is created using this style, it automatically creates a
default tooltip control that displays the slider's current position. You can
change where the tooltips are displayed by using the <a href="messages/TBM_SETTIPSIDE.htm#TBM_SETTIPSIDE">TBM_SETTIPSIDE</a>
message.
<dt><b><a name="TBS_TOP">TBS_TOP</a></b>
<dd>The trackbar control will display tick marks above the control. This style
is only valid with TBS_HORZ.
<dt><b><a name="TBS_VERT">TBS_VERT</a></b>
<dd>The trackbar control will be oriented vertically. This is the default
orientation.</dd>
</dl>
<h1><a name="_win32_tv_styles"></a>Tree View Control Window Styles</h1>
<p>The following window styles are used when creating tree view controls.
<dl>
<dt><b><a name="TVS_CHECKBOXES">TVS_CHECKBOXES</a></b>
<dd><b>Version 4.70</b>. Enables check boxes for items in a tree view control.
Effectively, when set to this style, the control creates and sets a state
image list using <!-- a-link -->
<b>DrawFrameControl</b>. For more information, see <a href="TreeView.htm#tv_state_image_indexes">Working
with state image indexes</a>. Once the control is created with this style,
it cannot be removed. If it is necessary to remove this style, the control
must be destroyed and a new one created in its place.
<dt><b><a name="TVS_DISABLEDRAGDROP">TVS_DISABLEDRAGDROP</a></b>
<dd>Prevents the tree view control from sending <a href="notifications/TVN_BEGINDRAG.htm#TVN_BEGINDRAG">TVN_BEGINDRAG</a>
notification messages.
<dt><b><a name="TVS_EDITLABELS">TVS_EDITLABELS</a></b>
<dd>Allows the user to edit the labels of tree view items.
<dt><b><a name="TVS_FULLROWSELECT">TVS_FULLROWSELECT</a></b>
<dd><b>Version 4.71</b>. Enables full-row selection in the tree view. The
entire row of the selected item is highlighted, and clicking anywhere on an
item's row will cause it to be selected. This style cannot be used in
conjunction with the <a href="Styles.htm#TVS_HASLINES">TVS_HASLINES</a>
style.
<dt><b><a name="TVS_HASBUTTONS">TVS_HASBUTTONS</a></b>
<dd>Displays plus (+) and minus (-) buttons next to parent items. The user
clicks the buttons to expand or collapse a parent item's list of child
items. To include buttons with items at the root of the tree view,
TVS_LINESATROOT must also be specified.
<dt><b><a name="TVS_HASLINES">TVS_HASLINES</a></b>
<dd>Uses lines to show the hierarchy of items.
<dt><b><a name="TVS_INFOTIP">TVS_INFOTIP</a></b>
<dd><b>Version 4.71</b>. The tree view control will send the <a href="notifications/TVN_GETINFOTIP.htm#TVN_GETINFOTIP">TVN_GETINFOTIP</a>
notification to obtain tooltip information.
<dt><b><a name="TVS_LINESATROOT">TVS_LINESATROOT</a></b>
<dd>Uses lines to link items at the root of the tree view control. This value
is ignored if TVS_HASLINES is not also specified. <!-- @Begin changes to text. -->
<dt><b><a name="TVS_NOHSCROLL">TVS_NOHSCROLL</a></b>
<dd><a name="new"></a><b>Version 5.00</b>. Disables horizontal scrolling in
the control. The control will not display any horizontal scroll bars. <!-- @End -->
<dt><b><a name="TVS_NONEVENHEIGHT">TVS_NONEVENHEIGHT</a></b>
<dd><b>Version 4.71</b>. The height of the items can be set to an odd height
with the <a href="messages/TVM_SETITEMHEIGHT.htm#TVM_SETITEMHEIGHT">TVM_SETITEMHEIGHT</a>
message. By default, the height of items must be an even value.
<dt><b><a name="TVS_NOSCROLL">TVS_NOSCROLL</a></b>
<dd><b>Version 4.71</b>. Disables both horizontal and vertical scrolling in
the control. The control will not display any scroll bars.
<dt><b><a name="TVS_NOTOOLTIPS">TVS_NOTOOLTIPS</a></b>
<dd><b>Version 4.70</b>. The tree view control does not support tooltips.
<dt><b><a name="TVS_RTLREADING">TVS_RTLREADING</a></b> <!-- @Begin changes to text. -->
<dd><b>Version 4.70</b>. Normal windows display text left-to-right (LTR).
Windows can be <i>mirrored</i> to display languages such as Hebrew or Arabic
that read right-to-left (RTL). Normally, tree view text will be displayed in
same direction as the the text in its parent window. If TVS_RTLREADING is
set, tree view text will read in the opposite direction from the text in the
parent window. <!-- @End changes to text -->
<dt><b><a name="TVS_SHOWSELALWAYS">TVS_SHOWSELALWAYS</a></b>
<dd>Causes a selected item to remain selected when the tree view control loses
focus. <!-- @Begin changes to text. -->
<dt><b><a name="TVS_SINGLEEXPAND">TVS_SINGLEEXPAND</a></b>
<dd><b>Version 4.71</b>. When this style is enabled, changing the selection in
the tree view will automatically cause the item being selected to expand and
the item being unselected to collapse. If the mouse is used to single-click
the selected item and that item is closed, it will be expanded. If the user
holds the CTRL key down while selecting an item, the item being unselected
will not be collapsed.
<p><b>Version 5.0</b>. When this style is enabled, changing the selection
will automatically cause the item being selected to collapse if it was
expanded, or expand if it was collapsed. The unselected item will collapse.
If the user holds the CTRL key down while selecting an item, the item being
unselected will not be collapsed.</p>
<!-- @End changes to text -->
<dt><b><a name="TVS_TRACKSELECT">TVS_TRACKSELECT</a></b>
<dd><b>Version 4.70</b>. Enables hot tracking in a tree view control.</dd>
</dl>
<h1>Up-Down Control Styles</h1>
<p>The following styles are used when creating up-down controls:
<table>
<tbody>
<tr>
<td><b><a name="UDS_ALIGNLEFT">UDS_ALIGNLEFT</a></b></td>
<td><font face="verdana,arial,helvetica" size="2">RCML
</font>
</td>
<td>Positions the up-down control next to the left edge of the buddy
window. The buddy window is moved to the right, and its width is
decreased to accommodate the width of the up-down control.</td>
</tr>
<tr>
<td><b><a name="UDS_ALIGNRIGHT">UDS_ALIGNRIGHT</a></b></td>
<td></td>
<td>Positions the up-down control next to the right edge of the buddy
window. The width of the buddy window is decreased to accommodate the
width of the up-down control.</td>
</tr>
<tr>
<td><b><a name="UDS_ARROWKEYS">UDS_ARROWKEYS</a></b></td>
<td></td>
<td>Causes the up-down control to increment and decrement the position
when the <small>UP ARROW</small> and <small>DOWN ARROW</small> keys are
pressed.</td>
</tr>
<tr>
<td><b><a name="UDS_AUTOBUDDY">UDS_AUTOBUDDY</a></b></td>
<td></td>
<td>Automatically selects the previous window in the z-order as the
up-down control's buddy window.</td>
</tr>
<tr>
<td><b><a name="UDS_HORZ">UDS_HORZ</a></b></td>
<td></td>
<td>Causes the up-down control's arrows to point left and right instead of
up and down.</td>
</tr>
<!-- @Begin changes to text. -->
<tr>
<td><b><a name="UDS_HOTTRACK">UDS_HOTTRACK</a></b></td>
<td></td>
<td>The control will exhibit &quot;hot tracking&quot; behavior. That is,
it will highlight the up and down arrows on the control as the pointer
passes over them. This style requires Windows 98 or Windows NT 5. If the
system is running Windows 95 or Windos NT 4, the flag is ignored. To
check whether or not hot tracking is enabled, call <!-- a-link -->
<b>SystemParametersInfo</b>.</td>
</tr>
<!-- @End -->
<tr>
<td><b><a name="UDS_NOTHOUSANDS">UDS_NOTHOUSANDS</a></b></td>
<td></td>
<td>Does not insert a thousands separator between every three decimal
digits.</td>
</tr>
<tr>
<td><b><a name="UDS_SETBUDDYINT">UDS_SETBUDDYINT</a></b></td>
<td></td>
<td>Causes the up-down control to set the text of the buddy window (using
the WM_SETTEXT message) when the position changes. The text consists of
the position formatted as a decimal or hexadecimal string.</td>
</tr>
<tr>
<td><b><a name="UDS_WRAP">UDS_WRAP</a></b></td>
<td></td>
<td>Causes the position to &quot;wrap&quot; if it is incremented or
decremented beyond the ending or beginning of the range.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h5><a name="ChangeHistory">Change History</a></h5>
<table border="1" cellspacing="0" width="100%" bordercolor="#808080">
<tr>
<td>
<h5><font size="1">Date</font></h5>
</td>
<td>
<h5><font size="1">Changes Made</font></h5>
</td>
<td>
<h5><font size="1">Program Manager</font></h5>
</td>
</tr>
<tr>
<td>13 April</td>
<td>Remembered to fill in this list</td>
<td>FelixA</td>
</tr>
<tr>
<td>13 April</td>
<td>Added the MFC style explanations</td>
<td>FelixA</td>
</tr>
<tr>
<td>14 April</td>
<td>Added the common controls. Explaining what RCML syntax to use for
styles we support, and which styles we don't support.</td>
<td>FelixA.</td>
</tr>
<tr>
<td>23 April</td>
<td>Added RESIZE=&quot;AUTOMATIC/DIRECTED&quot;, and RELATIVE=&quot;YES/
control ID&quot; as well as the WIDER and TALLER attributes to LOCATION.</td>
<td>&nbsp;</td>
</tr>
</table>
<h5><a name="Appendix">Appendices</a></h5>
<p><a href="http://xsp/specs/core/xsp_msml.htm">For information on XML, click
here</a></p>
</body>
</html>