CEF3 怎样禁止右键菜单

CEF3 怎样禁止右键菜单 (2013-07-30 11:56:34)转载▼
标签: cef3 右键菜单 分类: CEF3
问题描述:
CEF3 嵌入成功后,在网页点鼠标右键,出现英文菜单,应该怎样禁止掉呢?

解决方法:

对void ClientHandler::OnBeforeContextMenu 按如下改动即可:

void ClientHandler::OnBeforeContextMenu(
CefRefPtr browser,
CefRefPtr frame,
CefRefPtr params,
CefRefPtr model) {
if ((params->GetTypeFlags() & (CM_TYPEFLAG_PAGE | CM_TYPEFLAG_FRAME)) != 0) {
// Add a separator if the menu already has items.
if (model->GetCount() > 0)
{
model->Clear();
//model->AddSeparator();
}
}
}

CEF3 的右键菜单过程 (2013-07-30 17:08:21)转载▼
标签: cef3 右键菜单 分类: CEF3
前提:
使用 cef_binary_3.1453.1255_windows.7z (http://www.magpcss.net/cef_downloads/) 在VS2008 环境建立 MFC 应用程序,调试通过。将加载主页换成百度。

菜单创建过程:
当在网页点击鼠标右键时,下面的方法会执行:

void ClientHandler::OnBeforeContextMenu(
CefRefPtr browser,
CefRefPtr frame,
CefRefPtr params,
CefRefPtr model) {
if ((params->GetTypeFlags() & (CM_TYPEFLAG_PAGE | CM_TYPEFLAG_FRAME)) != 0) {
// Add a separator if the menu already has items.
if (model->GetCount() > 0)
model->AddSeparator();

// Add a "Show DevTools" item to all context menus.
model->AddItem(CLIENT_ID_SHOW_DEVTOOLS, "&Show DevTools");

CefString devtools_url = browser->GetHost()->GetDevToolsURL(true);
if (devtools_url.empty() ||
m_OpenDevToolsURLs.find(devtools_url) != m_OpenDevToolsURLs.end()) {
// Disable the menu option if DevTools isn't enabled or if a window is
// already open for the current URL.
model->SetEnabled(CLIENT_ID_SHOW_DEVTOOLS, false);
}

// Test context menu features.
BuildTestMenu(model);
}
}
在此方法里,你可以用model->Clear();清除所有菜单项,也可以用model->AddSeparator();加分隔线,可以用 model->AddItem(CLIENT_ID_SHOW_DEVTOOLS, "&Show DevTools");增加菜单项。用model->SetEnabled(CLIENT_ID_SHOW_DEVTOOLS, false);灰化菜单项。

菜单的响应:
以 CLIENT_ID_SHOW_DEVTOOLS为例,在如下方法进行响应。

bool ClientHandler::OnContextMenuCommand(
CefRefPtr browser,
CefRefPtr frame,
CefRefPtr params,
int command_id,
EventFlags event_flags) {
switch (command_id) {
case CLIENT_ID_SHOW_DEVTOOLS:
ShowDevTools(browser);
return true;
default: // Allow default handling, if any.
return ExecuteTestMenu(command_id);
}
return false;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值