⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b04021328_webbrowserdlg.cpp

📁 简单的浏览器。在菜单项或工具条实现打开一个新的网页指定的功能。清除自动密码历史记录
💻 CPP
📖 第 1 页 / 共 2 页
字号:

}

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 + -