看小不小的问题:如何去掉htmlview的边框,3D-look?(ModifyStyle不行的)
想实现htmlview 显示的网页与对话框融为一体,去掉所谓的
3D-Look 立体效果,要的就是edit控件,去掉WS_BORDER的效果。可谁知就是这个一个小问题,搞得我好郁闷,一切都试过了,没用。
初步结果:htmlview的窗口通过修改,可以做到flat效果,但是一旦执行了,
CHtmlView::Navigate,就会新生成子窗口:Internet Explorer_Server,Shell EmBeding
等窗口,于是,我用了一个极端的办法,穷举所有的子窗口,然后修改,但是无效:代码如下:
//枚举所有的子窗口
BOOL CALLBACK EnumChildProc(HWND hChildWnd,LPARAM lparam)
{
//this->ModifyStyle(WS_BORDER|WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE,WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
//this->ModifyStyleEx(WS_BORDER|WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
char strbuf[256];
::GetClassName(hChildWnd,strbuf,sizeof(strbuf));
::SetWindowLong(hChildWnd,GWL_STYLE,WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN);
::SetWindowLong(hChildWnd,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
if( strcmp(strbuf, "Internet Explorer_Server")==0 )
{
return false;
}
else
return true;
}-------------------------------------------------------------------------------
那位高手感兴趣,试下.
http://topic.csdn.net/t/20021229/15/1310286.html
这里的办法不能解决.
想实现htmlview 显示的网页与对话框融为一体,去掉所谓的
3D-Look 立体效果,要的就是edit控件,去掉WS_BORDER的效果。可谁知就是这个一个小问题,搞得我好郁闷,一切都试过了,没用。
初步结果:htmlview的窗口通过修改,可以做到flat效果,但是一旦执行了,
CHtmlView::Navigate,就会新生成子窗口:Internet Explorer_Server,Shell EmBeding
等窗口,于是,我用了一个极端的办法,穷举所有的子窗口,然后修改,但是无效:代码如下:
//枚举所有的子窗口
BOOL CALLBACK EnumChildProc(HWND hChildWnd,LPARAM lparam)
{
//this->ModifyStyle(WS_BORDER|WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE,WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
//this->ModifyStyleEx(WS_BORDER|WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
char strbuf[256];
::GetClassName(hChildWnd,strbuf,sizeof(strbuf));
::SetWindowLong(hChildWnd,GWL_STYLE,WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN);
::SetWindowLong(hChildWnd,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
if( strcmp(strbuf, "Internet Explorer_Server")==0 )
{
return false;
}
else
return true;
}-------------------------------------------------------------------------------
那位高手感兴趣,试下.
http://topic.csdn.net/t/20021229/15/1310286.html
这里的办法不能解决.
如下去掉3d和滚动条
HRESULT CMyHtmlView::OnGetHostInfo( DOCHOSTUIINFO *pInfo )
{
if( pInfo )
{
pInfo->dwFlags |= (DOCHOSTUIFLAG_NO3DBORDER |DOCHOSTUIFLAG_SCROLL_NO);
}
return S_OK;
}
不是 .Net
看来得把 .Net 的源码拷过来
用用了..
</BODY>------------------------------
只能这样了....
http://support.microsoft.com/kb/q236312