CAUSE
When an ActiveX control is developed in Visual C++, Enum types can be
declared in the control's ODL file, and subsequently used by the control's
properties. HelpStrings can also be associated with the members of the Enum
to help define the property.
Here is a segment of an ODL file for an ActiveX control built in MFC:
typedef enum tagLineStyleConstants
{
[helpstring("Solid")] lsSolid = 0,
[helpstring("Dash")] lsDash = 1,
[helpstring("Dot")] lsDot = 2,
[helpstring("Dash-Dot")] lsDashDot = 3,
[helpstring("Dash-Dot-Dot")] lsDashDotDot = 4,
} LineStyleConstants;
....
properties:
// NOTE - ClassWizard will maintain property information here.
// Use extreme caution when editing this section.
//{{AFX_ODL_PROP(CEnumCtrl)
[id(1)] LineStyleConstants LineStyle;
//}}AFX_ODL_PROP
When the ActiveX control has been sited on a form in Visual Basic 4.0, you
can see that the value of the LineStyle property, when viewed from the
Properties Window, is composed of all the HelpStrings of the Enum type. It
looks similar to the following:
0 - Solid
1 - Dash
2 - Dot
3 - Dash-Dot
4 - Dash-Dot-Dot
However, when this ActiveX control is sited on a form in Visual Basic 5.0
or 6.0, you can see that the value of the LineStyle property is composed of
all the members of the Enum type rather than the HelpStrings. It looks
similar to the following:
0 - lsSolid
1 - lsDash
2 - lsDot
3 - lsDashDot
4 - lsDashDotDot
Visual Basic 5.0 or 6.0 reserve the HelpStrings for descriptive
explanations of each Enum member when viewed in the Object Browser.