ListView Control
The ListView control that displays a single column of values with an icon next to each item. It enables the user to select a single string or integer value for a property from a predetermined list. The possible values are read from the ListView table. You can associate the control with an integer or string value by entering the property's name into the Property column of the Control table.
The contents of the Text field of the Control table is never displayed by the ListView control. Instead this field specifies the style of text to be displayed by the control and contains a description of the control used by screen review utilities. To set the font and font style of a text string, prefix the string of displayed characters with {\style} or {&style}. Where style is an identifier listed in the TextStyle column of the TextStyle table. If neither of these are present, but the DefaultUIFont property is defined as a valid text style, that font will be used. The information following this is read by screen review utilities as the description of the control. See Accessibility.
You can use the following attributes with this control. To change the value of an attribute using an event, subscribe the control to a ControlEvent in the EventMapping table and list the attribute's identifier in the Attribute column. Enter the identifier of the ControlEvent in the Event column.
Attribute identifier | Hexadecimal bit | Description |
---|---|---|
IndirectPropertyName | This is the name of an indirect property associated with the control. If the Indirect attribute bit is set, the control displays or changes the value of the property having this name. If the Indirect attribute bit is set, this name is also the value of the property listed in the Property column of the Control table. | |
Position | Position of the control in the dialog box. Enter the control's width, height, and coordinates of the control's left corner into the Width, Height, X, and Y columns of the Control table. Use installer units for length and distance. |
|
PropertyName | This is the name of the property associated with this control. If the Indirect attribute bit is not set, the control displays or changes the value of the property having this name. This attribute is specified in the Property column of the Control table. | |
PropertyValue | Current value of the property displayed or changed by this control. If the Indirect attribute bit is not set, this is the value of PropertyName. If the Indirect attribute bit is set, this is the value of IndirectPropertyName. If the attribute changes, the control reflects the new value. | |
Text | To display text in screen readers, enter the text into the Text column of the Control table. See Accessibility. | |
Visible | 0x00000000 0x00000001 |
Hidden control. Visible control. Include this bit in the bit word of the Attributes column in the Control table to make the control visible or hidden upon its creation. You can also hide or show a control by using the ControlCondition table. |
Enabled | 0x00000000 0x00000002 |
Control in a disabled state. Control in an enabled state. Include this bit in the bit word in the Attributes column of the Control to enable the control on creation. You can also enable or disable a control by using the ControlCondition table. |
Sunken | 0x00000000 0x00000004 |
Displays the default visual style. Displays the control with a sunken, 3-D, look. Include these bits in the bit word in the Attributes column of the Control table. |
Indirect | 0x00000000 0x00000008 |
The control displays or changes the value of the property in the Property column of the Control table. The control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. Determines if the property associated with this control is referenced indirectly. |
Integer | 0x00000000 0x00000010 |
Property associated with the control is a string value. Property associated with the control is an integer value. Include this bit in the bit word of the Attributes column of the Control table to set this attribute on creation of the control. |
RTLRO | 0x00000000 0x00000020 |
Text in the control is displayed in left-to-right reading order. Text in the control is displayed in right-to-left reading order. |
RightAligned | 0x00000000 0x00000040 |
Text in the control is aligned to the left. Text in the control is aligned to the right. |
LeftScroll | 0x00000000 0x00000080 |
The scroll bar is located on the right side of the control. The scroll bar is located on the left side of the control. |
BiDi | 0x000000E0 | Set this value for a combination of the RTLRO, RightAligned, and LeftScroll attributes. |
Sorted | 0x00000000 0x00010000 |
Items displayed in alphabetical order. Items displayed in order specified in the ListView table. Include this bit in the bit word in the Attributes column to display items in the order specified by the Order column of the ListView table. |
FixedSize | 0x00000000 0x00100000 |
Stretches the icon image to fit the control. Crops or centers the icon image in the control. Include this bit in the bit word of the Attributes column of the Control table. |
IconSize | 0x00000000 0x00200000 0x00400000 0x00600000 |
Loads the first image. Loads the first 16x16 image. Loads the first 32x32 image. Loads the first 48x48 image. An icon file can contain different size images of the same icon. Include the value of the appropriate bit word in the Attributes column of the Control table If these bits are not set, the installer ignores the FixedSize attribute and the image is stretched to fit the control rectangle. If both the IconSize bits and the FixedSize bits are set, an image smaller than the control is centered and an image is larger than the control it is shrunk to fit. |
This control can be created from the WC_LISTVIEW class by using the CreateWindowEx function. It has the LVS_REPORT, LVS_NOCOLUMNHEADER, WS_VSCROLL, WS_HSCROLL, LVS_SHAREIMAGELISTS, LVS_SINGLESEL, LVS_SHOWSELALWAYS, WS_BORDER, and WS_TABSTOP styles. If the Sorted style bit is not on, the control also has the LVS_SORTASCENDING style.
For compatibility with screen readers, when authoring a dialog with an ListView control as the first active control, you must make the text field belonging to the edit field the first active control in the Dialog table. Since the static text cannot take focus, when the dialog is created the edit field will have the focus initially as intended, but doing this ensures that screen readers show the correct information.