Appearance
右键菜单相关
关闭右键菜单
cpp
mbWebView mbView = mbCreateWebWindow(MB_WINDOW_TYPE_POPUP, nullptr, 0, 0, 800, 600);
// ...
mbSetContextMenuEnabled(mbView, false);
有些版本这个函数不生效,或者除了右键菜单外,还想阻止选中文本的右键复制等,可以使用如下办法:
cpp
mbRunJs(webView, frameId, "document.addEventListener('contextmenu', function (event) {event.preventDefault();});", true, nullptr, nullptr, nullptr);
这是利用了 js 的 preventDefault
阻止默认行为。
或者不用 js:
cpp
mbWebView mbView = mbCreateWebWindow(MB_WINDOW_TYPE_POPUP, nullptr, 0, 0, 800, 600);
// ...
HWND hMbWindow = mbGetHostHWND(mbView);
可以使用 mbGetHostHWND
获取到 webveiw 对应的窗口句柄,然后可以诸如 SetWindowLongPtr
设置窗口过程,或者使用消息钩子对右键进行拦截。
修改菜单的内容
cpp
mbWebView mbView = mbCreateWebWindow(MB_WINDOW_TYPE_POPUP, nullptr, 0, 0, 800, 600);
// ...
mbSetContextMenuItemShow(mbView, kMbMenuReloadId, true);
可以使用 mbSetContextMenuItemShow
定制菜单的内容,这里将刷新按钮加入右键菜单。 全部菜单项参考 mbSetContextMenuItemShow