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

📄 myieview.cpp

📁 myie的源程序是用VC++写自已可以扩搌使用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		break;
	}
}

void CMyIEView::OnOptionsAllowscripts() 
{
	// TODO: Add your command handler code here
	dwProperty ^= DLCTL_NO_SCRIPTS;
}

void CMyIEView::OnOptionsLoadsounds() 
{
	// TODO: Add your command handler code here
	dwProperty ^= DLCTL_BGSOUNDS;
	
}

void CMyIEView::OnOptionsLoadvideos() 
{
	// TODO: Add your command handler code here
	dwProperty ^= DLCTL_VIDEOS;
	
}

void CMyIEView::OnOptionsUseWebp() 
{
	// TODO: Add your command handler code here
	if(m_bEnWebProxy)
		m_bEnWebProxy = FALSE;
	else
		m_bEnWebProxy = TRUE;
}

void CMyIEView::OnUpdateOptionsUseWebp(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_bEnWebProxy)
	{
		if(((CMainFrame*)pMainFrame)->m_strBGPic == "" || pCmdUI->m_pMenu !=NULL)
			pCmdUI->SetCheck();
		else
		{
			pCmdUI->SetCheck(0);
			((CMainFrame*)pMainFrame)->m_wndToolBar.GetToolBarCtrl().PressButton(pCmdUI->m_nID, TRUE);
		}
	}
	else
	{
		((CMainFrame*)pMainFrame)->m_wndToolBar.GetToolBarCtrl().PressButton(pCmdUI->m_nID, FALSE);
		pCmdUI->SetCheck(0);
	}

}

void CMyIEView::OnOptionsAllowactivex() 
{
	// TODO: Add your command handler code here
		dwProperty ^= DLCTL_NO_RUNACTIVEXCTLS;

}

void CMyIEView::OnOptionsAllowjavaapplet() 
{
	// TODO: Add your command handler code here
		dwProperty ^= DLCTL_NO_JAVA;

}


void CMyIEView::OnCommandStateChange(long nCommand, BOOL bEnable) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(nCommand == 2)
		m_back = bEnable;
	else if(nCommand == 1)
		m_forward = bEnable;

	CFixedHtmlView::OnCommandStateChange(nCommand, bEnable);
}

void CMyIEView::OnUpdateGoBack(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_back);
}

void CMyIEView::OnUpdateGoForward(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_forward);
}




BOOL CMyIEView::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	if (CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))
		return TRUE;

	return FALSE;
}


void CMyIEView::OnSize(UINT nType, int cx, int cy) 
{
//	if (nType != SIZE_MINIMIZED )
	{
		if(m_bMax==1)
		{
			if(GetParentFrame()->IsZoomed())
			{
				CRect oldrect;
				m_wndBrowser.GetWindowRect(&oldrect);
				if(oldrect.Width()!=cx+4 && oldrect.Height()!=cy+4)
					m_wndBrowser.MoveWindow(-2,-2, cx+4, cy+4);
				else if(oldrect.Width()!=cx+4 )
					m_wndBrowser.SetWidth (cx+4);
				else if(oldrect.Height()!=cy+4)
					m_wndBrowser.SetHeight (cy+4);
			}
		}
		else
		{
				CRect oldrect;
				m_wndBrowser.GetWindowRect(&oldrect);
				if(oldrect.Width()!=cx+4 && cx!=0)
					m_wndBrowser.SetWidth (cx+4);
				if(oldrect.Height()!=cy+4 && cy!=0)
					m_wndBrowser.SetHeight (cy+4);
				if(GetParentFrame()->GetStyle() & WS_MAXIMIZE)
					m_bMax = 1;
		}

		//size other views
			if(m_bMax == 3)
			{
				m_bMax = 0;
				CChildFrame* tcf;
				CRect oldrect,rect;
				if(pMainFrame!=NULL)
				{
					int n = ((CMainFrame*)pMainFrame)->m_wndTab.GetItemCount();
					TCITEM TabCtrlItem;
					TabCtrlItem.mask = TCIF_PARAM;

					for(int i=n-1;i>=0;i--)
					{
						((CMainFrame*)pMainFrame)->m_wndTab.GetItem(i, &TabCtrlItem);
						tcf = ((CChildFrame*)TabCtrlItem.lParam);
						if(tcf != NULL && tcf->m_pView!=NULL)
						{
							if(tcf->m_pView != this)
							{
									tcf->GetClientRect(&rect);
									tcf->m_pView->m_wndBrowser.GetWindowRect(&oldrect);
									if(oldrect.Width()!=rect.Width()+4 && rect.Width()!=0)
										tcf->m_pView->m_wndBrowser.SetWidth (rect.Width()+4);
									if(oldrect.Height()!=rect.Height()+4 && rect.Height()!=0)
										tcf->m_pView->m_wndBrowser.SetHeight (rect.Height()+4);
							}
						}
					}
				}
			}
	}
	
}

void CMyIEView::OnUpdateViewFonts(CCmdUI* pCmdUI) 
{ 
	// TODO: Add your command update UI handler code here
	if(pCmdUI->m_nID==ID_VIEW_FONTS_LARGEST+m_nFontSize)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}

BOOL CMyIEView::PopFilterStar(LPCSTR lpszURL)
{

	POSITION pos = ((CMainFrame*)pMainFrame)->m_astrPopup.GetHeadPosition();
	CString str, url(lpszURL),tmp, tmp2;
	int i = 0, i2=0, start = 0, start2 = 0;//start - str, start2 - tmp
	BOOL cmode = TRUE; //compare mode;
	BOOL isame = FALSE;
	while(pos!=NULL && !isame)
	{
		str = ((CMainFrame*)pMainFrame)->m_astrPopup.GetAt(pos);
		if (str.Find('*')>=0 && str!="*")
		{
			//star filter
			i = 0; i2 = 0; start = 0; start2 = 0;
			isame = TRUE;cmode = TRUE;
			while(start<str.GetLength() && isame)
			{
				//get the string before *
				i=str.Find('*', start);
				if(i<0)
				{
					tmp2 = str.Mid(start);
					i=str.GetLength();
				}
				else
					tmp2 = str.Mid(start,i-start);
				if(tmp2!="")
				{
					if(cmode)
					{
						tmp = url.Mid(start2, i-start);
						if(tmp != tmp2)
							isame = FALSE;
					}
					else
					{
						i2=url.Find(tmp2, start2);
						if( i2<0)
							isame = FALSE;
					}
				}
				cmode = FALSE;
				start = i+1;
				start2 = i2 + tmp2.GetLength();
			}
		}

		((CMainFrame*)pMainFrame)->m_astrPopup.GetNext(pos);
	}

	return isame;
}

void CMyIEView::ToNavigate(LPCTSTR URL, DWORD dwFlags, LPCTSTR lpszTargetFrameName, LPCTSTR lpszHeaders, LPVOID lpvPostData,  DWORD dwPostDataLen)
{
	CString str(URL);
	m_lpszUrl=URL;

	m_bFirst = TRUE;

	if(m_bEnWebProxy)
	{
		if(m_strWebProxy.IsEmpty() && pMainFrame!=NULL)
			m_strWebProxy = ((CMainFrame*)pMainFrame)->m_strDefaultWebProxy;

		if(str.Left(4)=="http" && str.Find(m_strWebProxy)<0)
		{
			Navigate2(m_strWebProxy+str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);
		}
		else
			Navigate2(str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);
	}
	else
		Navigate2(str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);

}

void CMyIEView::OnEditEdit() 
{
	// TODO: Add your command handler code here
	TCHAR           sz[MAX_PATH];
	TCHAR           szPath[MAX_PATH];
	HKEY            hKey;
	DWORD           dwSize = MAX_PATH;

	
	// find out from the registry where the favorites are located.
	if(RegOpenKey(HKEY_CLASSES_ROOT, _T("InternetShortcut\\shell\\edit\\command"), &hKey) != ERROR_SUCCESS)
	{
		//use view source instead
		((CMainFrame*)pMainFrame)->ExecCmdTarget(HTMLID_VIEWSOURCE, this);
		return ;
	}
	dwSize = sizeof(sz);
	RegQueryValueEx(hKey, _T(""), NULL, NULL, (LPBYTE)sz, &dwSize);
	RegCloseKey(hKey);
	if(dwSize>0)
	{
		ExpandEnvironmentStrings(sz, szPath, MAX_PATH);

		//run
		char * ch, *ch1 = szPath;
		ch = strchr(szPath, '\"');
		if(ch!=NULL)
		{
			ch1 = ch+1;
			ch = strchr(ch1, '\"');
			if(ch!=NULL)
				*ch ='\0';
		}
		else
		{
			ch = strchr(szPath, '%');
			if(ch!=NULL)
				*ch = '\0';
		}
		if(ch!=NULL)
			ch++;
		ShellExecute(NULL, "open", ch1 , m_lpszUrl, NULL, SW_SHOW );

	}
	else
		//use view source instead
		((CMainFrame*)pMainFrame)->ExecCmdTarget(HTMLID_VIEWSOURCE, this);

}

void CMyIEView::OnParentNotify(UINT message, LPARAM lParam) 
{
	CFixedHtmlView::OnParentNotify(message, lParam);
	
	// TODO: Add your message handler code here
	if(message == WM_LBUTTONDOWN)
		//get time
		QueryPerformanceCounter(&m_tLastClick);

}


void CMyIEView::OnToolsAutoscrollAutoscrollingafterdownloading() 
{
	// TODO: Add your command handler code here
	m_bScrollAfterDL = !m_bScrollAfterDL;

	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_bDefScrollAfterDL = m_bScrollAfterDL;

}

void CMyIEView::OnUpdateToolsAutoscrollAutoscrollingafterdownloading(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(m_bScrollAfterDL);
}

void CMyIEView::OnToolsAutoscrollFast() 
{
	// TODO: Add your command handler code here
	m_nSrSpeed = 3;

	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_nDefSrSpeed = m_nSrSpeed;

	ChangeSpeed(3);
}

void CMyIEView::OnUpdateToolsAutoscrollFast(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(m_nSrSpeed==3);
}

void CMyIEView::OnToolsAutoscrollMedium() 
{
	// TODO: Add your command handler code here
	m_nSrSpeed = 2;
	
	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_nDefSrSpeed = m_nSrSpeed;

	ChangeSpeed(2);
}

void CMyIEView::OnUpdateToolsAutoscrollMedium(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(m_nSrSpeed==2);
}

void CMyIEView::OnToolsAutoscrollSlow() 
{
	// TODO: Add your command handler code here
	m_nSrSpeed = 1;
	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_nDefSrSpeed = m_nSrSpeed;
	ChangeSpeed(1);
}

void CMyIEView::OnUpdateToolsAutoscrollSlow(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(m_nSrSpeed==1);
}

void CMyIEView::OnToolsAutoscrollUseautoscrolling() 
{
	// TODO: Add your command handler code here
	m_bUseAutoScroll = !m_bUseAutoScroll;
	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_bDefUseAutoScroll = m_bUseAutoScroll;

	//start to scroll
	if(!m_nScrollTimer && m_bUseAutoScroll && m_nSrSpeed!=0)
	{
		if(m_nProgress==100 || m_nProgress<0 || (!m_bScrollAfterDL && m_nProgress>=20))
		{
			m_nScrollTimer = SetTimer(2000, 1000*gSeed/m_nSrSpeed, NULL);
		}
	}
	else if(!m_bUseAutoScroll && m_nScrollTimer)
	{		//stop the timer;
		if(m_nScrollTimer)
			KillTimer(m_nScrollTimer);
		m_nScrollTimer = 0;
	}
}

void CMyIEView::OnUpdateToolsAutoscrollUseautoscrolling(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_bUseAutoScroll)
	{
		if(((CMainFrame*)pMainFrame)->m_strBGPic == "" || pCmdUI->m_pMenu !=NULL)
			pCmdUI->SetCheck();
		else
		{
			pCmdUI->SetCheck(0);
			((CMainFrame*)pMainFrame)->m_wndToolBar.GetToolBarCtrl().PressButton(pCmdUI->m_nID, TRUE);
		}
	}
	else
	{
		((CMainFrame*)pMainFrame)->m_wndToolBar.GetToolBarCtrl().PressButton(pCmdUI->m_nID, FALSE);
		pCmdUI->SetCheck(0);
	}
}

void CMyIEView::ChangeSpeed(int nSpeed)
{
	if(m_nScrollTimer)
	{		//stop the timer;
		KillTimer(m_nScrollTimer);
		m_nScrollTimer = 0;
	}

	//start to scroll
	if(!m_nScrollTimer && m_bUseAutoScroll && nSpeed!=0)
	{
		if(m_nProgress==100 || m_nProgress<0 || (!m_bScrollAfterDL && m_nProgress>=20))
		{
			m_nScrollTimer = SetTimer(2000, 1000*gSeed/nSpeed, NULL);
		}
	}
}

void CMyIEView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent == m_nScrollTimer)
	{
/*		CRect rect;
		GetWindowRect(&rect);
		DWORD pos = MAKELPARAM(rect.top+10, rect.left+10);
		m_wndBrowser.SendMessage(MSWHELL_ROLLMSG, 0xFFFFFFF2, pos);*/

		LPDISPATCH pDisp = NULL;

		pDisp = GetHtmlDocument();
		IHTMLDocument2 *pHTMLDoc;
		IHTMLWindow2 *pHTMLWnd;
		if( pDisp )
		{
			if (SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc)))
			{
				if(SUCCEEDED(pHTMLDoc->get_parentWindow( &pHTMLWnd )))
				{
					pHTMLWnd->scrollBy(0, 5);
					pHTMLWnd->Release();
				}
				pHTMLDoc->Release();
			}
			pDisp->Release();
		}
	}
	CFixedHtmlView::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -