0.本文代码下载(http://skinart.y365.com/csdn/htmlcontextmenu.zip)(代码只是做演示用,没有做什么错误检查,请注意)
1.常被人鄙视的方法(PreTranslateMessage)
经常见到有人问怎么屏蔽html的右键菜单,有人答用PreTranslateMessage函数拦截wm_rbuttondown消息,于是总会有人说这种方法怎么烂,@_@,我真不知道为什么,不过我想这也是一种方法呀,而且非常简单,所以还是列出来吧:)
BOOL CPreTranslateMsgView::PreTranslateMessage(MSG* pMsg)
{
if ((pMsg->message == WM_RBUTTONDOWN)||(pMsg->message == WM_RBUTTONDBLCLK)){
CPoint point(pMsg->pt);
ScreenToClient(&point);
IHTMLDocument2* pdoc2=NULL;
IHTMLElement* pElement=NULL;
IDispatch* pDisp=NULL;
pDisp=GetHtmlDocument();
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pdoc2);
pDisp->Release();
pdoc2->elementFromPoint(point.x,point.y,&pElement);
pdoc