正在阅读:Internet Explorer编程简述(六)Internet Explorer编程简述(六)

2004-09-27 15:06 出处:CSDN 作者:CathyEagle 责任编辑:linjixiong


  if (wParam == (WPARAM) g_hPubMenu)
  {
  ::EnableMenuItem( 自定义的菜单命令ID, MF_ENABLED | MF_BYCOMMAND );
  ::CheckMenuItem( 自定义的菜单命令ID, MF_BYCOMMAND);
  return 0;
  }
  }
  return CallWindowProc(g_lpPrevWndProc, hwnd, uMsg, wParam, lParam);
  }

  HRESULT CMyHtmlView::OnShowContextMenu(DWORD dwID, LPPOINT ppt,
  LPUNKNOWN pcmdtReserved, LPDISPATCH pdispReserved)
  {
  //浏览器菜单句柄保存在g_hPubMenu中
  ......
  // subclass浏览器窗口
  g_lpPrevWndProc = (WNDPROC)::SetWindowLong(hwnd, GWL_WNDPROC, (LONG)CustomMenuWndProc);
  //m_SubclassWnd.SubclassWindow( hwnd );//MFC中用此方法更简便

  // Show shortcut menu
  int iSelection = ::TrackPopupMenu(hSubMenu,
  TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
  ppt->x,
  ppt->y,
  0,
  hwnd,
  (RECT*)NULL);
  // Unsubclass浏览器窗口
  ::SetWindowLong(hwnd, GWL_WNDPROC, (LONG)g_lpPrevWndProc);
  g_lpPrevWndProc = NULL;
  //m_SubclassWnd.UnsubclassWindow();

  if (iSelection == 自定义的菜单命令ID )
  {
  ::SendMessage( ::AfxGetMainWnd()->m_hWnd, WM_COMMAND, MAKEWPARAM(LOWORD(lResult), 0x0), 0 );
  }
  else
  {
  LRESULT lr = ::SendMessage(hwnd, WM_COMMAND, iSelection, NULL);
  }
  ......
  }

系列文章:Internet Explorer编程简述(一) (二) (三) (四) (五) (六)

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品