In a windows7 x86 client wiht IE11, I enconuterd a strange behavor of a activex control.It faile to fire the DoubleClick event.
It can be proved with below steps.
1.Create a MFC activeX control named IE11
2.override the WindowProc method of IE11 IE11Ctrl.cpp with bellow code
LRESULT CIE11Ctrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch (message) { case WM_LBUTTONDOWN: TRACE("CIE11Ctrl::WindowProc(message = WM_LBUTTONDOWN)\r\n"); break; case WM_LBUTTONUP: TRACE("CIE11Ctrl::WindowProc(message = WM_LBUTTONUP)\r\n"); break; case WM_LBUTTONDBLCLK: TRACE("CIE11Ctrl::WindowProc(message = WM_LBUTTONDBLCLK)\r\n"); break; } return COleControl::WindowProc(message, wParam, lParam); }
3.embed the code in a html
<HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 8.0"><TITLE></TITLE></HEAD><BODY bgcolor="#99999"><form><OBJECT ID="IE11" style="Z-INDEX: 108; LEFT: 5px; WIDTH: 500px; POSITION: absolute; TOP: 50px; HEIGHT: 388px" CLASSID="clsid:049B6B97-41FB-4C30-B011-5B28FD1E8529" VIEWASTEXT"><PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="18521"><PARAM NAME="_ExtentY" VALUE="23230"><PARAM NAME="_StockProps" VALUE="0"></OBJECT></form></BODY></HTML>
4. Try to debug the page , you'll find the trace out put never get "WM_LBUTTONDBLCLK" when you doubleClick the activeX area if the controlis not focused. While on windows 8 with a IE11, this issue disappered.
My question:
- Is it a bug or by design? Any doc to describ it ?
- What is the inner workings between IE and activeX?
- If so , Is there any workaround for it ?
Any one who give me some advice will be appreciate.
Thanks a lot.