-----------------------------------更新----------- ----------------------------
我想这与PDF有关。在显示pdf之前,所有功能都可以正常工作,并且可以触发所有功能。但是在显示pdf之后,它们将无法工作。所以我认为pdf本身就是一个activeX控件。
------------------------------------更新------------- ----------------------------
我需要在项目的对话框中嵌入html查看器。
但是,此html视图将导航到pdf文件,而我的代码对此有效。
但是,当我在对话框中的pdf上单击鼠标右键时,它总是显示上下文菜单,如下所示:
这是我的代码的一部分,我在STDMETHOD(ShowContextMenu)
内添加了断点,但这永远不会触发函数。它不是回调函数吗?如何禁用右键单击或上下文菜单?
class TestHtmlViewer : public CDHtmlDialog
{
public:
TestHtmlViewer() {};
~TestHtmlViewer() {};
void Navigate(LPCTSTR URL, VARIANT* pFlags = nullptr, VARIANT* pTargetFrameName = nullptr, VARIANT* pPostData = nullptr, VARIANT* pHeaders = nullptr) const;
STDMETHOD(ShowContextMenu)(DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved) override
{
UNREFERENCED_PARAMETER(dwID);
UNREFERENCED_PARAMETER(ppt);
UNREFERENCED_PARAMETER(pcmdtReserved);
UNREFERENCED_PARAMETER(pdispReserved);
return S_OK;
};
};
我也尝试了以下功能,但并未被调用:
BOOL TestHtmlViewer::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_RBUTTONDBLCLK)
{
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}