关于TWebBrowser的按键问题

I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi | C++Builder中,用CoolBar+ToolBar建立一个主菜单,再在窗口上内建一个WebBrowser,运行,在WebBrowser中打开一个有表单的HTML页面,在页面里输入一些东西,这时候如果输入的字符中含有‘F’,则主菜单(&File)会自动下拉;输入‘E’,则主菜单(&Edit)会自动下拉。 声明:我键盘上的ALT键很正常。
不知哪位是否碰到过同样的问题?怎么解决呢?
回复人:haoxg(白日梦) (2001-6-3 15:50:00) 得0分
问题已经解决。
跟踪VCL的代码发现这原来并非VCL的错误,猜想是ComCtl32.dll内部的一个BUG。
也就是说在WebBrowser和ToolBar共存的情况下,在WebBrowser中的击键消息会被ToolBar误认为是DialogChar。
我override了ToolBar里的CM_DIALOGCHAR消息后没有了这个问题:
procedure TMyToolBar.CMDialogChar(var Message: TCMDialogChar);
var
Keys: TKeyboardState;
begin
GetKeyboardState(Keys);
if (Keys[VK_LMENU] = 1) or (Keys[VK_RMENU] = 1) then inherited;
end;
 
顶部