用CHtmlView时怎样更改JS中alert的标题?

解决方案 »

  1.   

    <script>
    alert('hello');
    </script>
      

  2.   

    如果我没有记错的话,你需要实现IDocHostShowUI接口大约是这个样子
    class CMyHtmlControlSite : public COleControlSite
    {
    public:
    CMyHtmlControlSite(COleControlContainer* pParentWnd);
    ~CMyHtmlControlSite(); CHtmlView* GetView() const; BEGIN_INTERFACE_PART(DocHostUIHandler2, IDocHostUIHandler2)
    STDMETHOD(ShowContextMenu)(DWORD, LPPOINT, LPUNKNOWN, LPDISPATCH);
    STDMETHOD(GetHostInfo)(DOCHOSTUIINFO*);
    STDMETHOD(ShowUI)(DWORD, LPOLEINPLACEACTIVEOBJECT, LPOLECOMMANDTARGET, LPOLEINPLACEFRAME, LPOLEINPLACEUIWINDOW);
    STDMETHOD(HideUI)(void);
    STDMETHOD(UpdateUI)(void);
    STDMETHOD(EnableModeless)(BOOL);
    STDMETHOD(OnDocWindowActivate)(BOOL);
    STDMETHOD(OnFrameWindowActivate)(BOOL);
    STDMETHOD(ResizeBorder)(LPCRECT, LPOLEINPLACEUIWINDOW, BOOL);
    STDMETHOD(TranslateAccelerator)(LPMSG, const GUID*, DWORD);
    STDMETHOD(GetOptionKeyPath)(OLECHAR **, DWORD);
    STDMETHOD(GetDropTarget)(LPDROPTARGET, LPDROPTARGET*);
    STDMETHOD(GetExternal)(LPDISPATCH*);
    STDMETHOD(TranslateUrl)(DWORD, OLECHAR*, OLECHAR **);
    STDMETHOD(FilterDataObject)(LPDATAOBJECT , LPDATAOBJECT*);
    STDMETHOD (GetOverrideKeyPath)(LPOLESTR *pchKey, DWORD dw);
    END_INTERFACE_PART(DocHostUIHandler2)

    BEGIN_INTERFACE_PART(DocHostShowUI, IDocHostShowUI)
    STDMETHOD(ShowHelp)(HWND hwnd, LPOLESTR pszHelpFile, UINT uCommand, DWORD dwData, POINT ptMouse, IDispatch *pDispatchObjectHit);
    STDMETHOD(ShowMessage)(HWND hwnd, LPOLESTR lpstrText, LPOLESTR lpstrCaption, DWORD dwType, LPOLESTR lpstrHelpFile, DWORD dwHelpContext, LRESULT *plResult);
    END_INTERFACE_PART(DocHostShowUI) DECLARE_INTERFACE_MAP()
    };BEGIN_INTERFACE_MAP(CMyHtmlControlSite, COleControlSite)
    INTERFACE_PART(CMyHtmlControlSite, IID_IDocHostUIHandler2, DocHostUIHandler2)
    INTERFACE_PART(CMyHtmlControlSite, IID_IDocHostUIHandler, DocHostUIHandler2)
    INTERFACE_PART(CMyHtmlControlSite, IID_IDocHostShowUI, DocHostShowUI)
    END_INTERFACE_MAP()...
    STDMETHODIMP CMyHtmlControlSite::XDocHostShowUI::ShowHelp(HWND hwnd, LPOLESTR pszHelpFile, UINT uCommand, DWORD dwData, POINT ptMouse, IDispatch *pDispatchObjectHit )
    {
    METHOD_PROLOGUE(CMyHtmlControlSite, DocHostShowUI)
    return S_FALSE;
    }STDMETHODIMP CMyHtmlControlSite::XDocHostShowUI::ShowMessage( HWND hwnd, LPOLESTR lpstrText, LPOLESTR lpstrCaption, DWORD dwType, LPOLESTR lpstrHelpFile, DWORD dwHelpContext, LRESULT *plResult)
    {
    METHOD_PROLOGUE(CMyHtmlControlSite, DocHostShowUI)
    *plResult = AfxMessageBox(COLE2CT(lpstrText), dwType, dwHelpContext);
    return S_OK;
    }