A stock Text or Caption property is not added to an MFC ActiveX control which subclasses a Combo or List Box (160910)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 4.2
- Microsoft Visual C++, 32-bit Enterprise Edition 5.0
- Microsoft Visual C++, 32-bit Professional Edition 5.0
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 6.0
- Microsoft Visual C++, 32-bit Learning Edition 6.0
This article was previously published under Q160910 SYMPTOMS When you add a stock Text or Caption property to an MFC
ActiveX control that subclasses a Combo or List Box, it will not serialize
properly. CAUSE When a container attempts to read the Text or Caption
property for an MFC ActiveX control, the MFC framework calls
COleControl::GetText. GetText calls COleControl::InternalGetText.
InternalGetText may attempt to get the Text or Caption property from the
control with the following call:
if (DefWindowProc(WM_GETTEXT, (WPARAM)_cchUsual,
(LPARAM)m_strText.GetBufferSetLength(_cchUsual)) >= _cchUsual - 1)
In the case of subclassed Combo or List Box control, this call will
always return an empty buffer. RESOLUTION It is debatable whether it makes sense to have a Text or
Caption property for a subclassed Combo or List Box. The native Combo and List
Box controls do not respond to the WM_SETTEXT or WM_GETTEXT messages.
Therefore, the problem described above occurs.
If it makes sense to
do this in your application, it is easy to make this work: When adding the Text
or Caption property to the ActiveX control, simply select the stock property
and select Get / Set methods. This will give you the ability to handle the Text
or Caption property as if it were a custom property. STATUS This behavior is by design. MORE INFORMATION The Text and Caption properties of an ActiveX control are
synonymous.
Modification Type: | Major | Last Reviewed: | 9/1/2005 |
---|
Keywords: | kbtshoot kbComboBox kbCtrl kbListBox kbprb KB160910 kbAudDeveloper |
---|
|