BETA-PRB: Tabbing Broken for ATL Controls in IE 4.0Last reviewed: June 25, 1997Article ID: Q169434 |
********************************************************************
BETA INFORMATION BETA INFORMATION BETA INFORMATION BETA This article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice. No formal product support is available from Microsoft for this Beta product. For information about obtaining support for a Beta release, please see the documentation included with the Beta product files, or check the Web location from which you downloaded the release. BETA INFORMATION BETA INFORMATION BETA INFORMATION BETA******************************************************************** The information in this article applies to:
SYMPTOMSMultiple Active Template Library (ATL) controls embedded in an HTML page may not exhibit proper tabbing behavior in Internet Explorer (IE) 4.0. This behavior can be observed by subclassing a Windows Edit Control with an ATL control and placing multiple copies in a Web page. Tabbing will toggle the focus between the first control and the address line in IE.
CAUSEIn-place active objects must always be given the first chance at translating accelerator keystrokes. To satisfy this requirement, the Internet Explorer calls an ActiveX control's IOleInPlaceActiveObject::TranslateAccelerator method. The default ATL implementation of TranslateAccelerator does not pass the keystroke to the container.
RESOLUTIONIn order for the Internet Explorer 4.0 to handle tabbing "correctly" for ATL controls, the control must pass the appropriate accelerator back to the container. Adding the following to an ATL Control will "fix" this behavior:
STDMETHOD(TranslateAccelerator)(MSG *pMsg) { CComQIPtr<IOleControlSite,&IID_IOleControlSite> spCtrlSite(m_spClientSite); if(spCtrlSite) { return spCtrlSite->TranslateAccelerator(pMsg,0); } return S_FALSE; } STATUSThis behavior is by design. It is up to the programmer to decide what the appropriate behavior for the control should be in this situation.
REFERENCES
Visual C++ Books Online: IOleInPlaceActiveObject::TranslateAccelerator |
Keywords : AtlMisc kbui
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |