Delphi中使用ActiveX控件引起的快捷键问题(200分)

  • 主题发起人 主题发起人 conwood
  • 开始时间 开始时间
C

conwood

Unregistered / Unconfirmed
GUEST, unregistred user!
我新建了一个工程
使用了微软出的DHtmlEdit控件
它是一个支持html格式的编辑控件
在一个form上添加一个button和一个DHtmlEdit
把button的caption设置成&Button
于是在DHtmlEdit中按b键的时候就没有反应
或者说去响应button的click事件去了

有人用Acrobat Reader带的一个控件也出现了类似的问题
TWebBrowser据说也有类似问题
那位大侠有办法解决?小弟感激不尽!
 
我不会,从别处查到的,你做个参考——

在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

 
干吗非要这个快捷键呢??换一个的了
 
后退
顶部