The Container control manages a hierarchy of bidi attributes which resembles the hierarchy of the container components.
A container control typically has the following hierarchy:
Container --> Record(s) --> Field(s)
Initially, records and fields do not have bidi attributes of their own (their bidi-attribute are not-initialized). At this time, their effective bidi attributes are those of the container window.
Applications can set their container's records or fields bidi attributes by sending the CM_SETITEMBIDIATTR and CM_SETFIELDBIDIATTR messages..
They can query their container's records and fields bidi attributes by sending CM_QUERYTEMBIDIATTR and CM_QUERYFIELDBIDIATTR.
The bidi-attributes hierarchy of the container works as follows:
The following is the description of the container window messages that are used to manage bidi attributes:
CM_SETITEMBIDIATTR - Set bidi attributes for a specific item (record) mp1 - PRECORDCORE pRecordCore mp2 - pointer to the following structure. typedef struct _BD_ATTR_MASK { ULONG ulBD_Attr; ULONG ulBD_Mask; } BD_ATTR_MASK; CM_QUERYITEMBIDIATTR - Queries the bidi attributes of a specific item (record). mp1 - PRECORDCORE pRecordCore mp2 - PULONG pBidiAttr - points to a ULONG where BidiAttributes are returned. CM_SETFIELDBIDIATTR: - Sets bidi attributes for a specific field (in details view only). mp1 - PFIELDINFO pFieldInfo mp2 - pointer to the following structure. typedef struct _BD_ATTR_MASK { ULONG ulBD_Attr; ULONG ulBD_Mask; } BD_ATTR_MASK; CM_QUERYFIELDBIDIATTR - Queries the bidi attributes of a specific field (in details view only). mp1: PFIELDINFO pFieldInfo mp2: PULONG pBidiAttr - points to a ULONG where BidiAttributes are returned.
In general, when the window orientation of the Container is RtL its presentation and behavior is symmetric to the one used in LtR orientation. Some specific points are: