打印本文 打印本文 关闭窗口 关闭窗口
Internet Explorer 编程简述(七)完美的“编码”菜单
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2338  更新时间:2009/4/23 10:51:16  文章录入:mintao  责任编辑:mintao
sp;       hr = pCmdTarget->Exec( &::CGID_ShellDocView, CmdID_GetMimeSubMenu, OLECMDEXECOPT_DODEFAULT, NULL, &varEncSubMenu );

          if ( SUCCEEDED( hr ) )

          {

            // 添加“编码”菜单

            MENUITEMINFO miiEncoding;

            ::memset( &miiEncoding, 0, sizeof(MENUITEMINFO) );

 

            miiEncoding.cbSize = sizeof(MENUITEMINFO);

            miiEncoding.fMask = MIIM_SUBMENU;

            miiEncoding.hSubMenu = reinterpret_cast< HMENU > (varEncSubMenu.byref);

            menu.SetMenuItemInfo(0, &miiEncoding, TRUE);//丢掉设计时占位用的菜单,替换为“编码”菜单

           }

        }

      }

    }

    pPopup = menu.GetSubMenu( 0 );

    break;

  }

  ......

  }

 

  if ( pPopup != 0 )

  {

    CRect rc;

    ::SendMessage( pNMToolBar->hdr.hwndFrom, TB_GETRECT, pNMToolBar->iItem, ( LPARAM )&rc );

    rc.top = rc.bottom;

    ::ClientToScreen( pNMToolBar->hdr.hwndFrom, &rc.TopLeft() );

    long lResult = pPopup->TrackPopupMenu( TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD, rc.left, rc.top, this );

    m_bIsEncodMenuPopup = false;

    if ( pNMToolBar->iItem == ID_VIEW_ENCODE )

    {

      //其余的事教给浏览器去做,参考《Internet Explorer 编程简述(五)调用IE隐藏的命令(中文版)

       CFindIEWnd FindIEWnd( pView->m_wndBrowser.m_hWnd, "Internet Explorer_Server");

      ::SendMessage( FindIEWnd.m_hWnd, WM_COMMAND, MAKEWPARAM(LOWORD(lResult), 0x0), 0 );

    }

    else

    {

      SendMessage( WM_COMMAND, MAKEWPARAM(LOWORD(lResult), 0x0), 0 );

    }

  }

  *pResult = TBDDRET_DEFAULT;

}


void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)

{

  CMDIFrameWndEx::OnInitMenuPopup(

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口