如何在 TWebBrowser 中忽略加速器字符(设计模式)
How to ignore accelerator chars in TWebBrowser (design mode)
我遇到的问题与这个问题中描述的问题基本相同:
How to make TWebBrowser ignore accelerator chars of others controls?
因此 TWebBrowser
处于设计模式,TAction
中的快捷键正在执行相关操作。
解决方案是:
type
TWebBrowser = class(SHDocVw.TWebBrowser)
procedure CNChar(var Message: TWMChar); message CN_CHAR;
end;
...
procedure TWebBrowser.CNChar(var Message: TWMChar);
begin
Message.Result := 0;
end;
我想尝试上述问题中描述的解决方案,但我无法将其转换为 C++ Builder 代码。我如何翻译 - 并且 - 是否有其他解决方案没有下降 TWebBrowser
和覆盖 CNChar
程序(也许在基于 TForm
的事件中这样做)?
C++ Builder 的翻译(归功于 Remy Lebeau)。
class TWebBrowser : public Shdocvw::TWebBrowser
{
private:
MESSAGE void __fastcall CNChar(TWMChar &Message);
public:
inline __fastcall virtual TWebBrowser(TComponent* AOwner) : Shdocvw::TWebBrowser(AOwner) { }
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CN_CHAR, TWMChar, CNChar);
END_MESSAGE_MAP(Shdocvw::TWebBrowser)
};
...
void __fastcall TWebBrowser::CNChar(TWMChar &Message)
{
Message.Result = 0;
}
我遇到的问题与这个问题中描述的问题基本相同:
How to make TWebBrowser ignore accelerator chars of others controls?
因此 TWebBrowser
处于设计模式,TAction
中的快捷键正在执行相关操作。
解决方案是:
type
TWebBrowser = class(SHDocVw.TWebBrowser)
procedure CNChar(var Message: TWMChar); message CN_CHAR;
end;
...
procedure TWebBrowser.CNChar(var Message: TWMChar);
begin
Message.Result := 0;
end;
我想尝试上述问题中描述的解决方案,但我无法将其转换为 C++ Builder 代码。我如何翻译 - 并且 - 是否有其他解决方案没有下降 TWebBrowser
和覆盖 CNChar
程序(也许在基于 TForm
的事件中这样做)?
C++ Builder 的翻译(归功于 Remy Lebeau)。
class TWebBrowser : public Shdocvw::TWebBrowser
{
private:
MESSAGE void __fastcall CNChar(TWMChar &Message);
public:
inline __fastcall virtual TWebBrowser(TComponent* AOwner) : Shdocvw::TWebBrowser(AOwner) { }
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CN_CHAR, TWMChar, CNChar);
END_MESSAGE_MAP(Shdocvw::TWebBrowser)
};
...
void __fastcall TWebBrowser::CNChar(TWMChar &Message)
{
Message.Result = 0;
}