浏览器家园
TAG标签|网站导航| 手机访问:m.liulanqi.com
MFC(Microsoft Foundation Classes)是微软推出的一套应用框架,主要用于Windows桌面应用程序的开发。在MFC的基础上,可以快速开发各种应用程序,包括浏览器。本文将介绍如何利用MFC创建浏览器。
在Visual Studio中,创建一个MFC应用程序项目。选择“应用程序向导”中的“单文档结构”类型。接着,勾选“Internet Explorer资源”选项,点击“完成”按钮。
在项目视图中,双击MainFrm.cpp文件。在OnCreate函数中加入以下代码:
CRect rect;
GetClientRect(&rect);
m_wndBrowser.Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this, AFX_IDW_PANE_FIRST, NULL);
此代码将在主窗口中添加一个WebBrowser控件,用于显示网页。
我们可以在浏览器中默认打开一个网页。在OnCreate函数中加入以下代码:
m_wndBrowser.Navigate(_T("http://www.baidu.com"), NULL, NULL, NULL, NULL);
此代码将在浏览器中加载百度网站。可以根据需要修改网址。
在MainFrm.h文件中添加以下代码:
CMFCToolBar m_wndToolBar;
在OnCreate函数中加入以下代码:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CString strToolBarName;
strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
m_wndToolBar.SetWindowText(strToolBarName);
此代码将在主窗口中增加一个标准的工具条。接着,我们在主窗口的OnUpdateViewStyles函数中添加以下代码,增加前进后退按钮:
pCmdUI->Enable(TRUE);
if (pCmdUI->m_nID == ID_VIEW_BACK)
{
CComPtr
m_wndBrowser.GetBrowserObject(&pBrowser);
ASSERT(pBrowser);
pCmdUI->Enable(pBrowser->GoBack() == S_OK);
}
else if (pCmdUI->m_nID == ID_VIEW_FORWARD)
{
CComPtr
m_wndBrowser.GetBrowserObject(&pBrowser);
ASSERT(pBrowser);
pCmdUI->Enable(pBrowser->GoForward() == S_OK);
}
在MainFrm.h文件中添加以下代码:
CMFCToolBarComboBoxButton m_wndAddressBar;
在OnCreate函数中添加以下代码:
if (!m_wndAddressBar.Create(&m_wndToolBar, AFX_IDW_TOOLBAR + 1, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VISIBLE, AFX_IDW_TOOLBAR))
{
TRACE0("Failed to create address bar combobox\n");
return -1; // fail to create
}
m_wndAddressBar.SetMinWidth(200);
m_wndToolBar.SetToolBarBtnText(m_wndToolBar.CommandToIndex(ID_VIEW_BACK), _T(""));
m_wndToolBar.SetToolBarBtnText(m_wndToolBar.CommandToIndex(ID_VIEW_FORWARD), _T(""));
m_wndToolBar.SetToolBarBtnText(m_wndToolBar.CommandToIndex(ID_VIEW_REFRESH), _T(""));
m_wndToolBar.SetToolBarBtnText(m_wndToolBar.CommandToIndex(ID_VIEW_STOP), _T(""));
此代码将在主窗口中增加一个地址栏。在OnUpdateViewStyles函数中,我们添加以下代码,用来更新地址栏中的网址:
if (pCmdUI->m_nID == AFX_IDW_TOOLBAR + 1)
{
CString strURL;
CComPtr
m_wndBrowser.GetBrowserObject(&pBrowser);
ASSERT(pBrowser);
CComBSTR bstrURL;
if (pBrowser->get_LocationURL(&bstrURL) == S_OK && bstrURL)
{
strURL = bstrURL;
}
m_wndAddressBar.SetWindowText(strURL);
}
我们可以在地址栏中输入搜索关键字,并打开搜索引擎搜索。在MainFrm.h文件中添加以下代码:
enum { CMD_SEARCH = 0xE900 };
在OnCreate函数中添加以下代码:
m_wndToolBar.InsertButton(CMD_SEARCH, ID_VIEW_STOP, TBSTATE_ENABLED | TBSTATE_HIDDEN, _T("Search"), NULL);
此代码将在工具条中增加一个搜索按钮。接着,我们在主窗口的OnCmdMsg函数中添加以下代码,用来响应搜索按钮的点击:
if (nID == CMD_SEARCH)
{
CString strURL = _T("http://www.baidu.com/s?");
CString strSearch = _T("");
m_wndAddressBar.GetWindowText(strSearch);
if (!strSearch.IsEmpty())
{
strSearch.Replace(_T(" "), _T("+"));
strURL += _T("wd=") + strSearch;
m_wndBrowser.Navigate(strURL, NULL, NULL, NULL, NULL);
}
return TRUE;
}
此代码将在浏览器中打开百度搜索结果页面。
以上就是利用MFC创建浏览器的基本步骤。通过本文的介绍,相信读者已经掌握了如何使用MFC实现浏览器的开发。读者也可以在此基础上进一步完善浏览器的功能,如增加书签功能、增加历史记录等。
Copyright 2019-2029 www.liulanqi.com 【浏览器家园】 版权所有
浏览器家园_下载浏览器就到浏览器家园 | 专注MAC浏览器和Windows浏览器下载和使用介绍
声明: 所有软件和文章收集整理来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告