如何禁止CppWebBrowser的右键弹出菜单

ysh 2002-07-16 10:46:54
用CppWebBrowser做一个浏览器,打开页面后,右键会弹出如IE中的菜单,请问如何禁止其弹出。
...全文
47 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jians 2002-08-11
  • 打赏
  • 举报
回复
增加一个TApplicationEvents控件在主窗体,在OnMessage事件响应函数中:
void __fastcall TMainFrm::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
Handled = false;

if (IsChild(LeftBrowser->Handle,Msg.hwnd)
&& (Msg.message == WM_RBUTTONDOWN || Msg.message == WM_RBUTTONUP))
{
Handled = true;
}
}
  • 打赏
  • 举报
回复
HHOOK HMouseHook;
int __stdcall MouseProc(
int nCode, // hook code
WPARAM WP, // message identifier
LPARAM LP // mouse coordinates
)
{

MOUSEHOOKSTRUCT MHS;
TWinControl* WC;

int Result = CallNextHookEx((void*)HMouseHook,nCode,WP,LP);
if ( nCode==HC_ACTION)
{
MHS = *PMOUSEHOOKSTRUCT(LP);
if ((WP==WM_RBUTTONDOWN) || (WP==WM_RBUTTONUP))
{
WC=FindVCLWindow(MHS.pt);
TCppWebBrowser* Browser = dynamic_cast<TCppWebBrowser*>(WC);
if (Browser)
{
Result=1;

if (Browser->PopupMenu && (WP==WM_RBUTTONUP))
{
Browser->PopupMenu->PopupComponent = WC;
Browser->PopupMenu->Popup(MHS.pt.x,MHS.pt.y);
}
}
}
}
return Result;
}

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
HMouseHook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseProc,HInstance,GetCurrentThreadId());
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
UnhookWindowsHookEx(HMouseHook);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CppWebBrowser->Navigate(L"http://www.sina.com.cn");
}
//---------------------------------------------------------------------------
ysh 2002-07-22
  • 打赏
  • 举报
回复
一年前有我曾经问过这个问题,当时已经还实现了,但后来忘记了,原来的代码也找不着了。
Lersh 2002-07-19
  • 打赏
  • 举报
回复
不可能禁止,除非你用script
ysh 2002-07-19
  • 打赏
  • 举报
回复
怎么就没人理我呢?
fansses 2002-07-19
  • 打赏
  • 举报
回复
up
781014 2002-07-19
  • 打赏
  • 举报
回复

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧