请教:如何去掉对话框中CHtmlCtrl的边框?

seadogdog 2004-07-01 12:27:51
请教:如何去掉对话框中CHtmlCtrl的边框?

我在对话框中放了一个Static,然后在OnInitDialog()加载CHtmlCtrl.
现在我想去掉CHtmlCtrl的边框,使得CHtmlCtrl象是平面的.
我试了下面两种方法,都不成功.

1.在OnInitDialog()时修改
m_page.ModifyStyle(WS_BORDER,0);

2.修改CHtmlCtrl的create
将BOOL Create(const RECT& rc, CWnd* pParent, UINT nID,
DWORD dwStyle = WS_CHILD|WS_VISIBLE , CCreateContext* pContext = NULL)
{
return CHtmlView::Create(NULL, NULL, dwStyle, rc,
pParent, nID, pContext);
}
修改成:
BOOL Create(const RECT& rc, CWnd* pParent, UINT nID,
WORD dwStyle = WS_CHILD|WS_VISIBLE & ~WS_BORDER,
CCreateContext* pContext = NULL)
{
return CHtmlView::Create(NULL, NULL, dwStyle, rc,
pParent, nID, pContext);
}
...全文
379 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
seadogdog 2004-07-07
  • 打赏
  • 举报
回复
不知道为什么,我试了几次,每次都是一给分就出现下面的东西.

HTTP 500 - 内部服务器错误
seadogdog 2004-07-07
  • 打赏
  • 举报
回复
As you wish,I got it!
Thank you very much!
蒋晟 2004-07-05
  • 打赏
  • 举报
回复
override CHTMLView::OnGetHostInfo
seadogdog 2004-07-05
  • 打赏
  • 举报
回复
yes,my CHtmlCtrl is derived from CHTMLView of MFC7.
Would you tell me how to use it?
蒋晟 2004-07-05
  • 打赏
  • 举报
回复
use the CHTMLView of MFC7
seadogdog 2004-07-04
  • 打赏
  • 举报
回复

AfxEnableControlContainer?
Thank you!But it seem to too complex for change display style.

Right now,display html file at my application have taken me several seconds,
if I add such thing as "AfxEnableControlContainer" and "CCustomControlSite",
my application should take more overload?

Are there any more simply way to change the style,something like javascript in html?

Are anybody have another suggestion?
seadogdog 2004-07-03
  • 打赏
  • 举报
回复
谢谢两位的帮忙,但是我还是不明白要如何解决边框的问题.

To zuolihua(纷华):
你的代码我加了,但我还是不明白这段代码怎么用?
和IDocHostUIHandler有什么关系吗?

To jiangsheng(蒋晟.MSMVP2004Jan):
您的文章我看了,文章讲的是在程序中添加脚本支持.
虽然不是很明白这和去除CHtmlCtrl的边框有什么关系,
但我想和我的问题相关的是要使用CHtmlCtrl的高级宿主特性吧.

我用的是VC7,我的程序也实现了脚本支持.
文章中的HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler2::GetHostInfo( DOCHOSTUIINFO* pInfo )要放在CHtmlCtrl里吗?怎么用啊?

蒋晟 2004-07-03
  • 打赏
  • 举报
回复
use AfxEnableControlContainer to enable custom Control Container
zuolihua 2004-07-02
  • 打赏
  • 举报
回复
CHtmlCtrl类中增加下面的代码
void CHtmlCtrl::OnDocumentComplete(LPCTSTR lpszURL)
{
IHTMLDocument2 *phtmldoc2 = NULL;
IHTMLElement *phtmlElement = NULL;
IDispatch *pdisp = NULL;
pdisp = this->GetHtmlDocument();
if (pdisp != NULL)
{
pdisp->QueryInterface(IID_IHTMLDocument2, (void**)&phtmldoc2);
pdisp->Release();
}
if (phtmldoc2 != NULL)
{
phtmldoc2->get_body(&phtmlElement);
phtmldoc2->Release();
}
if (phtmlElement != NULL)
{
IHTMLBodyElement *phtmlbody = NULL;
phtmlElement->QueryInterface(IID_IHTMLBodyElement, (void**)&phtmlbody);
if (phtmlbody != NULL)
{
phtmlbody->put_scroll(L"no");
phtmlbody->Release();
phtmlElement->Release();
}
}

}
蒋晟 2004-07-02
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/read_article.asp?id=21702
seadogdog 2004-07-01
  • 打赏
  • 举报
回复
To lixiaosan(小三):
那篇文章我看过,也知道IE 服务器窗口是几层窗口组成,只是
不明白是哪一层窗口在画border,我再去研究一下,谢谢!

To jiangsheng(蒋晟.MSMVP2004Jan):
我在MSDN中查到
IDocHostUIHandler::GetHostInfo
Returns S_OK if successful, or an error value otherwise.
也许下面的东西就是我想要的
IDocHostUIHandler::SetHostFlags(DOCHOSTUIFLAG_NO3DBORDER)

但是,我想问个笨笨的问题,在CHtmlCtrl里要如何调用IDocHostUIHandler::SetHostFlags呢?
我用的CHtmlCtrl是从CHtmlView派生.

谢谢两位,问题解决后马上给分.
蒋晟 2004-07-01
  • 打赏
  • 举报
回复
Implement IDocHostUIHandler and return no border flag in IDocHostUIHandler::GetHostInfo
lixiaosan 2004-07-01
  • 打赏
  • 举报
回复
不晓得是不是
http://www.vckbase.com/document/viewdoc.asp?id=931
seadogdog 2004-07-01
  • 打赏
  • 举报
回复
各位帮帮忙吧,我现在头都大了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧