1.修改CWebBrowserUI的STDMETHOD(GetHostInfo)(DOCHOSTUIINFO* pInfo)函数,如下:
STDMETHODIMP DuiLib::CWebBrowserUI::GetHostInfo( DOCHOSTUIINFO* pInfo )
{
pInfo->dwFlags |= DOCHOSTUIFLAG_NO3DBORDER;//去掉3D边框
if (m_pWebBrowserEventHandler)
{
return m_pWebBrowserEventHandler->GetHostInfo(pInfo);
}
return S_OK;
}
注意:此种方法直接修改了库的源码,不建议。
2.窗口类继承CWebBrowserEventHandler覆盖HRESULT STDMETHODCALLTYPE GetHostInfo(DOCHOSTUIINFO __RPC_FAR *pInfo)如下:
virtual HRESULT STDMETHODCALLTYPE GetHostInfo( DOCHOSTUIINFO __RPC_FAR *pInfo)
{
if (pInfo != NULL)
{
pInfo->dwFlags |= DOCHOSTUIFLAG_NO3DBORDER;
}
return S_OK;
}
使用的时候
pWeb->SetWebBrowserEventHandler(this);
建议此方法,不修改源库,继承的方法。
本文介绍两种方法来移除CWebBrowserUI控件的3D边框效果:一是直接修改库源码,二是通过继承CWebBrowserEventHandler并重写GetHostInfo方法实现。推荐使用第二种方法,它更为灵活且不破坏原有库文件。
2万+





