📄 b04021328_webbrowserdlg.cpp
字号:
}
void CB04021328_WebBrowserDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
ReSize();
}
void CB04021328_WebBrowserDlg::OnPagesetup()
{
m_B04021328_WebBrowser.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER, NULL, NULL);
}
CString CB04021328_WebBrowserDlg::GetProgramRootPath()
{
CString strRootPath;
// 取得当前程序的帮助路径
strRootPath = AfxGetApp()->m_pszHelpFilePath;
// 返回字符串最后一个 "\" 的索引值
int index = strRootPath.ReverseFind('\\');
// 返回索引值左边的所有字符
return ( strRootPath.Left(index) + _T("\\") );
}
//删除IE历史记录
HRESULT CB04021328_WebBrowserDlg::ClearHistory()
{
IUrlHistoryStg2* pUrlHistoryStg2 = NULL;
HRESULT hr = CoCreateInstance( CLSID_CUrlHistory, NULL, CLSCTX_INPROC, IID_IUrlHistoryStg2, (void**)&pUrlHistoryStg2 );
if (SUCCEEDED(hr))
{
hr = pUrlHistoryStg2->ClearHistory();
pUrlHistoryStg2->Release();
}
return hr;
}
BEGIN_EVENTSINK_MAP(CB04021328_WebBrowserDlg, CDialog)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 250, CB04021328_WebBrowserDlg::BeforeNavigate2B04021328WebBrowser, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 251, CB04021328_WebBrowserDlg::NewWindow2B04021328WebBrowser, VTS_PDISPATCH VTS_PBOOL)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 273, CB04021328_WebBrowserDlg::NewWindow3B04021328WebBrowser, VTS_PDISPATCH VTS_PBOOL VTS_UI4 VTS_BSTR VTS_BSTR)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 227, CB04021328_WebBrowserDlg::UpdatePageStatusB04021328WebBrowser, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 106, CB04021328_WebBrowserDlg::DownloadBeginB04021328WebBrowser, VTS_NONE)
ON_EVENT(CB04021328_WebBrowserDlg, IDC_B04021328WebBrowser, 104, CB04021328_WebBrowserDlg::DownloadCompleteB04021328WebBrowser, VTS_NONE)
END_EVENTSINK_MAP()
void CB04021328_WebBrowserDlg::BeforeNavigate2B04021328WebBrowser(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel)
{
// TODO: 在此处添加消息处理程序代码
CString TempStr;
CString SaveStr;
m_url_combo.GetWindowText( SaveStr );
TempStr = URL->bstrVal;
TempStr.Trim();
if ( IsURLCanBeSaved( TempStr ) )
{
SaveURLToHistory( TempStr );
}
GetHistorydataToAddrCombo();
m_url_combo.SetWindowText( SaveStr );
}
void CB04021328_WebBrowserDlg::OnSelectNewPage()
{
OnBnClickedGourlButton();
}
void CB04021328_WebBrowserDlg::OnCbnSetfocusUrlCombo()
{
// TODO: 在此添加控件通知处理程序代码
}
void CB04021328_WebBrowserDlg::OnCbnDblclkUrlCombo()
{
// TODO: 在此添加控件通知处理程序代码
//OnBnClickedGourlButton();
}
void CB04021328_WebBrowserDlg::OnSelectExit()
{
OnCancel();
}
void CB04021328_WebBrowserDlg::OnSelectClearHistory()
{
wchar_t *TempChar;
CString Context;
Context = _T("");
TempChar = Context.GetBuffer( Context.GetLength() );
Context.ReleaseBuffer();
CString HistoryFileStr;
HistoryFileStr = GetProgramRootPath();
HistoryFileStr += _T("History.dat");
std::wofstream HistoryFile( HistoryFileStr, std::ios_base::out );
if ( !HistoryFile.is_open())
{
AfxMessageBox(_T("History.dat文件打开失败!"));
}
else
{
HistoryFile.imbue(std::locale("chs"));
HistoryFile << TempChar << std::endl;
HistoryFile.close();
}
GetHistorydataToAddrCombo();
AfxMessageBox( _T("历史记录已经全部清除!") );
}
void CB04021328_WebBrowserDlg::OnSelectAddFavorite()
{
CString NickName;
CString URL;
NickName = m_B04021328_WebBrowser.get_LocationName();
URL = m_B04021328_WebBrowser.get_LocationURL();
if ( IsFavCanBeSaved( URL ) )
{
SaveURLToFav( URL, NickName );
GetFavdataToFavCombo();
AfxMessageBox( _T("添加成功!"));
}
else
{
AfxMessageBox( _T("当前网页已经加入收藏夹或网页无效!"));
}
}
void CB04021328_WebBrowserDlg::SaveURLToFav( CString URLStr, CString NickNameStr )
{
wchar_t *URLTempChar;
wchar_t *NickNameTempChar;
CString URL;
CString NickName;
URL = URLStr;
NickName = NickNameStr;
URLTempChar = URL.GetBuffer( URL.GetLength() );
URL.ReleaseBuffer();
NickNameTempChar = NickName.GetBuffer( URL.GetLength() );
NickName.ReleaseBuffer();
CString FavFileStr;
FavFileStr = GetProgramRootPath();
FavFileStr += _T("Favorite.dat");
std::wofstream FavFile( FavFileStr, std::ios_base::app );
if ( !FavFile.is_open())
{
AfxMessageBox( _T("Favorite.dat文件打开失败!") );
}
else
{
FavFile.imbue(std::locale("chs"));
FavFile << URLTempChar << _T("\t");
FavFile << NickNameTempChar << _T("\r\n");
FavFile.close();
}
}
void CB04021328_WebBrowserDlg::GetFavdataToFavCombo()
{
CString URLStr;
CString NickNameStr;
wchar_t TempStr[9000];
CString TempCstr;
CString FavFileStr;
CString ResultStr;
m_fav_combo.ResetContent();
FavFileStr = GetProgramRootPath();
FavFileStr += _T("Favorite.dat");
std::wifstream FavFile( FavFileStr, std::ios_base::in );
if ( !FavFile.is_open())
{
AfxMessageBox(_T("Favorite.dat文件打开失败!"));
}
else
{
FavFile.imbue(std::locale("chs"));
while ( !FavFile.eof() )
{
FavFile >> TempStr;
TempCstr = TempStr;
URLStr = TempCstr;
FavFile >> TempStr;
TempCstr = TempStr;
NickNameStr = TempCstr;
if ( NickNameStr != _T("") && URLStr != _T("") )
{
ResultStr += NickNameStr;
ResultStr += _T("\t");
ResultStr += URLStr;
m_fav_combo.AddString( ResultStr );
}
ResultStr = _T("");
}
FavFile.close();
}
}
CString CB04021328_WebBrowserDlg::GetURLFromFavCombo()
{
CString tempStr;
CString resultStr;
int Index;
m_fav_combo.GetLBText( m_fav_combo.GetCurSel(), tempStr );
Index = tempStr.Find( _T("\t"), 0 );
for ( int i = Index+1; i < tempStr.GetLength(); i++ )
{
resultStr += tempStr[i];
}
return resultStr;
}
void CB04021328_WebBrowserDlg::OnCbnSelendokFavorateCombo()
{
// TODO: 在此添加控件通知处理程序代码
m_url_combo.SetWindowText( GetURLFromFavCombo() );
}
void CB04021328_WebBrowserDlg::OnBnClickedStopButton()
{
// TODO: 在此添加控件通知处理程序代码
m_B04021328_WebBrowser.Stop();
}
void CB04021328_WebBrowserDlg::OnBnClickedAddfavButton()
{
// TODO: 在此添加控件通知处理程序代码
OnSelectAddFavorite();
}
void CB04021328_WebBrowserDlg::OnBnClickedClearhistoryButton()
{
// TODO: 在此添加控件通知处理程序代码
OnSelectClearHistory();
}
void CB04021328_WebBrowserDlg::OnBnClickedClearfavButton()
{
// TODO: 在此添加控件通知处理程序代码
OnSelectClearFavorite();
}
void CB04021328_WebBrowserDlg::OnSelectAbout()
{
CAboutDlg dlg;
dlg.DoModal();
}
void CB04021328_WebBrowserDlg::OnSelectClearFavorite()
{
wchar_t *TempChar;
CString Context;
Context = _T("");
TempChar = Context.GetBuffer( Context.GetLength() );
Context.ReleaseBuffer();
CString FavFileStr;
FavFileStr = GetProgramRootPath();
FavFileStr += _T("Favorite.dat");
std::wofstream FavFile( FavFileStr, std::ios_base::out );
if ( !FavFile.is_open())
{
AfxMessageBox(_T("Favorite.dat文件打开失败!"));
}
else
{
FavFile.imbue(std::locale("chs"));
FavFile << TempChar << std::endl;
FavFile.close();
}
GetFavdataToFavCombo();
AfxMessageBox( _T("收藏夹已经清空!") );
}
//重载NewWindow2, 让新窗口在B04021328_WebBrowser中打开
void CB04021328_WebBrowserDlg::NewWindow2B04021328WebBrowser(LPDISPATCH* ppDisp, BOOL* Cancel)
{
m_dlgNewWB = new CB04021328_WebBrowserDlg;
m_dlgNewWB->Create(IDD_B04021328_WebBrowser_DIALOG);
*ppDisp = ( ( CB04021328_WebBrowserDlg *)m_dlgNewWB)->m_B04021328_WebBrowser.get_Application();
ReSize();
}
void CB04021328_WebBrowserDlg::NewWindow3B04021328WebBrowser(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)
{
// TODO: 在此处添加消息处理程序代码
}
void CB04021328_WebBrowserDlg::UpdatePageStatusB04021328WebBrowser(LPDISPATCH pDisp, VARIANT* nPage, VARIANT* fDone)
{
// TODO: 在此处添加消息处理程序代码
}
void CB04021328_WebBrowserDlg::DownloadBeginB04021328WebBrowser()
{
// TODO: 在此处添加消息处理程序代码
}
void CB04021328_WebBrowserDlg::DownloadCompleteB04021328WebBrowser()
{
// TODO: 在此处添加消息处理程序代码
}
void CB04021328_WebBrowserDlg::OnBnClickedSeehistoryButton()
{
// TODO: 在此添加控件通知处理程序代码
CString HistoryFileStr;
HistoryFileStr = GetProgramRootPath();
HistoryFileStr += _T("History.dat");
m_B04021328_WebBrowser.Navigate( HistoryFileStr, NULL, NULL, NULL, NULL );
}
void CB04021328_WebBrowserDlg::OnSeehistoryMenu()
{
// TODO: 在此添加命令处理程序代码
OnBnClickedSeehistoryButton();
}
void CB04021328_WebBrowserDlg::OnSeefavoriate()
{
// TODO: 在此添加命令处理程序代码
CString FavFileStr;
FavFileStr = GetProgramRootPath();
FavFileStr += _T("Favorite.dat");
m_B04021328_WebBrowser.Navigate( FavFileStr, NULL, NULL, NULL, NULL );
}
void CB04021328_WebBrowserDlg::OnBnClickedButtonIetemp()
{
// TODO: 在此添加控件通知处理程序代码
DelTempFiles();
}
void CAboutDlg::OnIeClrtemp()
{
// TODO: 在此添加命令处理程序代码
DelTempFiles();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -