MFC Web浏览器
1.如何创建单文档,工具栏样式为浏览器样式以及基类为CHtmlView类项目?
2.在工作区设计地址栏界面:
3.为浏览按钮控件添加事件处理:基类为CMainFram
4.浏览事件处理代码:三句话实现地址访问网络功能。
void CMainFrame::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString sWebAddress;
m_wndDlgBar.GetDlgItem(IDC_EDIT1)->GetWindowText(sWebAddress);
((CHtmlView*)GetActiveView())->Navigate(sWebAddress);
}
5.演示效果:
Web浏览器优化:
1.在输入地址后直接按回车,就可以实现浏览功能
ON_COMMAND(IDOK,OnBnClickedButton1)
2.设计主菜单:添加子项包括转到、停止、刷新、前进、后退、主页,并修改ID
3.为子菜单项添加事件处理函数,基类为CmybrowserView,并在mybrowserView.cpp添加#include “Resource.h”
void CmybrowserView::OnBack()
{
// TODO: 在此添加命令处理程序代码
CmybrowserView::GoBack();
}
void CmybrowserView::OnForward()
{
// TODO: 在此添加命令处理程序代码
CmybrowserView::GoForward();
}
void CmybrowserView::OnHome()
{
// TODO: 在此添加命令处理程序代码
CmybrowserView::GoHome();
}
void CmybrowserView::OnStop()
{
// TODO: 在此添加命令处理程序代码
CmybrowserView::Stop();
}
void CmybrowserView::OnRefresh()
{
// TODO: 在此添加命令处理程序代码
CmybrowserView::Refresh();
}
4.演示效果:
Web浏览器进一步优化
1.自定义工具栏:阿里矢量图
2.为自定义的工具栏图标修改ID为与子项菜单栏相同的ID以及提示信息
3.效果展示:
继续完善程序
1.地址栏地址和窗口标题同步更新,添加OnDocumentComplete函数,添加SetURL方法
2.更新地址栏和标题栏代码:
void CmybrowserView::OnDocumentComplete(LPCTSTR lpszURL)
{
// TODO: 在此添加专用代码和/或调用基类
//更新地址栏
((CMainFrame *)GetParentFrame())->SetURL(lpszURL);
//更新标题栏
GetDocument()->SetTitle(lpszURL);
CHtmlView::OnDocumentComplete(lpszURL);
}
void CMainFrame::SetURL(LPCTSTR lpszURL)
{
m_wndDlgBar.GetDlgItem(IDC_EDIT1)->SetWindowTextW(lpszURL);
}
3.修改程序图标:将图标ico放到res目录下,并按如下修改
4.效果展示: