PRB: No Text/Caption Properties for Subclassed Combo or ListLast reviewed: February 17, 1998Article ID: Q160910 |
The information in this article applies to:
SYMPTOMSWhen 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.
CAUSEWhen 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.
RESOLUTIONIt 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.
STATUSThis behavior is by design.
MORE INFORMATIONThe Text and Caption properties of an ActiveX control are synonymous. Keywords : MfcOLE Technology : kbole kbMfc Version : 4.2,5.0 Platform : NT WINDOWS Issue type : kbprb |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |