MFC 浏览器 去除滚动条

用MFC写一个浏览器,我现在知道的方法有:
1.在Dialog上面添加一个WebBrowser ActiveX控件,这个方法我在上一个文章上面的有说,这个方法做出来的浏览器窗口有滚动条,且,我不知道怎么把它给搞掉--!
2.创建基于CDHtmlDialog的工程,这个方法我在上一个文章上面的也有说,这种方法做出来的浏览器窗口直接就没有滚动条了,可是它是基于Dialog资源做的,不符合要求
3.使用CHtmlView方式来做,关于这个,请参考这个文章:http://www.vckbase.com/document/viewdoc/?id=566

把我实现的过程大概的说一下:
1.先建立一个基于Dialog的窗口(基类不是CDHtmlDialog,而是CDialog),然后再添加一个StaticText(不一定非要是这个控件,其它控件也行的)的控件在Dialog上面.
2.创建一个类,父类是CHtmlView. 
  class CMyHtmlView : public CHtmlView {...}
3.实际上CHtmlView这个类的内部就是使用WebBrowser ActiveX来实现浏览器的(我上面的说的第一种方式的封装体)
4.添加方法:

 
  
//
// 根据Dialog上面的控件来创建一个显示浏览器的窗口
//
BOOL CMyHtmlView::CreateFromStatic(UINT nID, CWnd * pParent)
{
CStatic wndStatic;
if ( ! wndStatic.SubclassDlgItem(nID, pParent))
{
return FALSE;
}

CRect rc;
wndStatic.GetWindowRect(
& rc);
pParent
-> ScreenToClient( & rc);
wndStatic.DestroyWindow();

return Create(NULL, NULL, (WS_CHILD | WS_VISIBLE), rc, pParent, nID, NULL);
}

//
// 重写这个函数就是去掉滚动条
//
HRESULT CMyHtmlView::OnGetHostInfo(DOCHOSTUIINFO * pInfo)
{
if (pInfo != NULL)
{
pInfo
-> dwFlags = DOCHOSTUIFLAG_SCROLL_NO;
}
return S_OK;
}

int CMyHtmlView::OnMouseActivate(CWnd * pDesktopWnd, UINT nHitTest, UINT message)
{
return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

void CMyHtmlView::OnDestroy()
{
if ( this -> m_pBrowserApp)
{
m_pBrowserApp
= NULL;
}
CWnd::OnDestroy();
}

//
// 不覆盖这个函数,退出时会有堆损坏的现像
// 不要添加任何代码
void CMyHtmlView::PostNcDestroy()
{

}

5.然后在Dialog的OnInitDialog()方法中添加:

 
  
BOOL CExplorerDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// 将“关于...”菜单项添加到系统菜单中。

// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0 ) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX
< 0xF000 );

CMenu
* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid
= strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if ( ! strAboutMenu.IsEmpty())
{
pSysMenu
-> AppendMenu(MF_SEPARATOR);
pSysMenu
-> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码

// CMyHtmlView m_explorer;

m_explorer.CreateFromStatic(IDC_STATIC,
this )
m_explorer.Navigate(
" www.baidu.com " , 0 , 0 , 0 , 0 , 0 );

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
运行一下看看,滚动条没了!^_^

转载于:https://www.cnblogs.com/emyueguang/archive/2011/05/25/2056503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值