我在TForm中嵌入了TWebBrowser。 每当我按Alt键时,浏览器窗口变为白色。如果我拖动它周围的形式重绘正确。
我做错了什么?
如果重要,我有DevExpress Bars和Quantum Grid吗?
我使用的是Delphi 2010和Windows 7以及XP SP2。 IE版本为7和8.可重现。
在按Alt之前:
按下Alt:
我通过以下方式解决了这个问题:
procedure TMainForm.WndProc(var Message: TMessage);
begin
inherited WndProc(Message);
if Message.Msg = WM_UPDATEUISTATE then
begin
if Assigned(ProblematicWebBrowser) then
ProblematicWebBrowser.Repaint;
end;
end;
答案 0 :(得分:3)
您没有说明您正在使用的Delphi版本,您正在使用的Windows版本,或者您安装的IE版本,what TWebBrowser wraps。 (作为一般性说明,因为你是这里的新用户,在提出这样的问题时你真的需要提供更多的信息。假设你的软件用户报告了这个错误 - 你会举起手来说“呸,没有复制。为什么他们不能告诉我他们在做什么?“在阅读你的问题时我们也一样。”
但是,那就是说,当你按Alt键时它消失的事实是一个暗示。 Windows可以选择隐藏加速键(下划线标记,如文件菜单上带下划线的F),直到用户按下Alt键。如果是这样,控件会发送一条WM_DRAWITEM消息,指示已更改的内容。另请参阅WM_CHANGEUISTATE。
过去版本的Delphi中存在一些错误(see this example bug),包括controls completely vanished when the Alt key was pressed的错误。 TWebBrowser未在该QC项目中列出,但它很可能受到影响。
所以我的猜测是:
解决方案:升级Delphi或应用the QC item中列出的修补程序。
答案 1 :(得分:0)
FWIW,在D2010中使用带有TWebBrowser的普通香草表格,按Alt键对WebBrowser显示无效。