PRB: Backspace in ATL Subclassed CTL Causes Internet Explorer to Navigate Back (190044)
The information in this article applies to:
- Microsoft Internet Explorer (Programming) 3.02
- Microsoft Internet Explorer (Programming) 4.0
- Microsoft Internet Explorer (Programming) 4.01
- Microsoft Internet Explorer (Programming) 4.01 SP1
- Microsoft Internet Explorer (Programming) 5
- Microsoft Internet Explorer (Programming) 5.01
- Microsoft Internet Explorer (Programming) 5.01 SP1
- Microsoft Internet Explorer (Programming) 5.5
This article was previously published under Q190044 SYMPTOMS
When an ATL ActiveX control that subclasses an edit control is hosted in
Internet Explorer, pressing the BACKSPACE key when focus is set to the Edit
control causes Internet Explorer to navigate to the previous Web page. If
there are no Web pages previous to the one with the control, the BACKSPACE
key functions as normal.
CAUSE
When the user clicks on the subclassed control, the control is not UI
Activated. This means that any accelerator keys are processed by the
Internet Explorer frame. The control is never given a change to process the
BACKSPACE accelerator key.
RESOLUTION
When the user clicks in the edit box, a WM_MOUSEACTIVATE message is sent to
the control. When this message is received, manually activate the control
by calling CComControl::InPlaceActivate(OLEIVERB_UIACTIVATE).
Here is sample code for a WM_MOUSEACTIVATE handler that calls
InPlaceActivate to manually UI Activate itself:
LRESULT OnMouseActivate(UINT, WPARAM, LPARAM, BOOL&)
{
// Manually activate the control
InPlaceActivate(OLEIVERB_UIACTIVATE);
return 0;
}
STATUS
This behavior is by design.
REFERENCES
For additional information, please see the following article in the
Microsoft Knowledge Base:
179696 PRB: Focus and Tab Issues with ATL Subclassed Edit Control
Modification Type: | Major | Last Reviewed: | 5/12/2003 |
---|
Keywords: | kbCtrl kbnofix kbprb KB190044 |
---|
|