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

📄 myieview.cpp

📁 myie的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
					if(oldrect.Height()!=cy+BORDER+BORDER)
						SetHeight (cy+BORDER+BORDER);
					}catch(...)
					{
					}
				}
			}
		}
		else
		{
				CRect oldrect;
				m_wndBrowser.GetWindowRect(&oldrect);
				ScreenToClient(&oldrect);
//				if(oldrect.Width()!=cx+4 && oldrect.Height()!=cy+4)
				if(oldrect.left != -BORDER && oldrect.top != -BORDER)
				{
					try{
					m_wndBrowser.MoveWindow(-2,-2, cx+BORDER+BORDER, cy+BORDER+BORDER);
					}catch(...)
					{
					}
				}
				else
				{
					try{
					if(oldrect.Width()!=cx+BORDER+BORDER && cx!=0)
						SetWidth (cx+BORDER+BORDER);
					if(oldrect.Height()!=cy+BORDER+BORDER && cy!=0)
						SetHeight (cy+BORDER+BORDER);
					}catch(...)
					{
					}
				}
				if(GetParentFrame()->GetStyle() & WS_MAXIMIZE)
					m_bMax = 1;
		}

		//size other views
		if(m_bMax == 3)
			ResizeSibling(this);

	}/*catch(CMemoryException * e)
	{
//		AfxMessageBox("resize error");
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	}
	
}

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)
{
	CString str, url(lpszURL),tmp, tmp2;

	try{

	POSITION pos = ((CMainFrame*)pMainFrame)->m_astrPopup.GetHeadPosition();
//	url = lpszURL;
	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;
	}
/*	catch(CMemoryException * e)
	{
		if(e!=NULL)e->Delete();
//		AfxMessageBox("statfilter error");
		return FALSE;
	}*/
	catch(...)
	{
		return FALSE;
	}

}

void CMyIEView::ToNavigate(LPCTSTR URL, DWORD dwFlags, LPCTSTR lpszTargetFrameName, LPCTSTR lpszHeaders, LPVOID lpvPostData,  DWORD dwPostDataLen, BOOL bOnlyRefresh)
{
	try{

//	CString str;
	str = URL;
	str2 = URL;
	m_lpszUrl=URL;

	m_bFirst = TRUE;

//2.2	if(dwFlags==0)
//		dwFlags = 4;

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

		if((str.Left(4)=="http" || str.Left(4)=="www.") && str.Find(m_strWebProxy)<0)
		{
			if(str.Left(4)=="www.")
				str2 = "http://" + str;
			if(m_strWebProxy.Find("%s")>0)
			{
				str2.Replace(":", "%3A");
				str2.Replace("/", "%2F");
				str = m_strWebProxy;
				str.Replace("%s", str2);
			}
			else if(m_strWebProxy.Find("%S")>0)
			{
				str = m_strWebProxy;
				str.Replace("%S", str2);
			}
			else
				str = m_strWebProxy+str2;
			Navigate2(str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);
		}
		else if(!bOnlyRefresh)
			Navigate2(str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);
	}
	else if(!bOnlyRefresh)
		Navigate2(str, dwFlags, lpszTargetFrameName, lpszHeaders,lpvPostData, dwPostDataLen);
	}/*catch(CMemoryException * e)
	{
//		AfxMessageBox("to nav error");
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	}

	m_nProgress = -1;
}



void CMyIEView::OnParentNotify(UINT message, LPARAM lParam) 
{
	CFixedHtmlView::OnParentNotify(message, lParam);
	
	// TODO: Add your message handler code here
	try{
	//336
	CChildFrame* tcf = (CChildFrame*)GetParentFrame();

	if((message == WM_LBUTTONDOWN || message == WM_RBUTTONDOWN) && (bLinkInNewWindow || tcf->bLock || m_bAutoFilter) )
	{
/*		BSTR bstr=NULL;
		IHTMLElement* pElem = NULL;
		IHTMLDocument2* pHTMLDoc=NULL;
		try{
		LPDISPATCH pDisp = GetHtmlDocument();

		if(pDisp!=NULL)
		{
			if(SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc)))
			{
				if(SUCCEEDED(pHTMLDoc->elementFromPoint(LOWORD((DWORD)lParam), HIWORD((DWORD)lParam), &pElem)))
				{
					pElem->get_tagName(&bstr);
					pElem->Release();
				}
				pHTMLDoc->Release();
			}
			pDisp->Release();
		}
		}catch(...)
		{
		}

		CString tag("");

		try{
		if(bstr!=NULL)
		{
			CString t(bstr);
			tag = t;
			SysFreeString(bstr);
		}
		}catch(...)
		{}
*/
		if(message == WM_LBUTTONDOWN )
		{	//get time
			QueryPerformanceCounter(&m_tLastClick);
			m_bRClick = FALSE;
			m_bLClick = TRUE;
			m_LClickPT.x = LOWORD((DWORD)lParam);
			m_LClickPT.y = HIWORD((DWORD)lParam);
		}
		else if(message == WM_RBUTTONDOWN ) //&& tag!="BODY" && tag!="TD"
		{
			QueryPerformanceCounter(&m_tLastRClick);
			m_bRClick = TRUE;
			m_bLClick = FALSE;
		}
		else
			m_bRClick = FALSE;

	}

	
	if(message==WM_RBUTTONDOWN && ((CMainFrame*)pMainFrame)->m_bAllowMouseGestures)
	{
		SetCapture();
		m_bIsCapture = TRUE;
//		m_bRClick = FALSE;
		m_StartPoint.x = LOWORD((DWORD)lParam);
		m_StartPoint.y = HIWORD((DWORD)lParam);
		m_iMouseGS = 0;
		m_iMouseGE = 0;
	}

	}catch(...)
	{
	}
}


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::OnUpdateToolsAutoscrollSpeed(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(pCmdUI->m_nID == ID_TOOLS_AUTOSCROLL_FAST)
		pCmdUI->SetCheck(m_nSrSpeed==3);
	else if(pCmdUI->m_nID == ID_TOOLS_AUTOSCROLL_MEDIUM)
		pCmdUI->SetCheck(m_nSrSpeed == 2);
	else
		pCmdUI->SetCheck(m_nSrSpeed == 1);
}

/*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::OnToolsAutoscrollSlow() 
{
	// TODO: Add your command handler code here
	m_nSrSpeed = 1;
	if(pMainFrame!=NULL)
		((CMainFrame*)pMainFrame)->m_nDefSrSpeed = m_nSrSpeed;
	ChangeSpeed(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(2132, (UINT)(1000*gSeed/m_nSrSpeed), NULL);
			m_nScrollTimer = SetTimer(2132, (UINT)((26 + gSeed * 100)/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
	try
	{
		((CMainFrame*)pMainFrame)->ToolBarSetCheck(pCmdUI, m_bUseAutoScroll);
	}
	catch(...)
	{
	}
	/*
	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(2132, (UINT)(1000*gSeed/nSpeed), NULL);
			m_nScrollTimer = SetTimer(2132, (UINT)((26 + gSeed * 100)/m_nSrSpeed), NULL);
		}
	}
}


void WBScroll(CMyIEView* pvw)
{
	if(pvw->m_bToClose)
		return;

		LPDISPATCH pDisp = NULL;

		IHTMLDocument2 *pHTMLDoc = NULL;
		IHTMLWindow2 *pHTMLWnd = NULL;

		try{
		pDisp = pvw->GetHtmlDocument();
		if( pDisp )
		{
			if (SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc)))
			{
				if(SUCCEEDED(pHTMLDoc->get_parentWindow( &pHTMLWnd )))
				{
					pHTMLWnd->scrollBy(0, 1);
					//2.1
					//pHTMLWnd->Release();
					//pHTMLWnd = NULL;
				}
				//pHTMLDoc->Release();
				//pHTMLDoc = NULL;
			}
			//pDisp->Release();
			//pDisp = NULL;
		}
		}
	/*	catch(CException * e)
		{//?
//		AfxMessageBox("wbs error");
			if(e!=NULL)e->Delete();
		}*/
		catch(...)
		{
//		AfxMessageBox("wbs error");
		}

		try{
			if(pHTMLWnd!=NULL)
				pHTMLWnd->Release();
			if(pHTMLDoc!=NULL)
				pHTMLDoc->Release();
			if(pDisp!=NULL)
				pDisp->Release();
		}
		catch(...)
		{
		}
}


void CMyIEView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	try{
	if(nIDEvent == m_nScrollTimer && m_bUseAutoScroll)
	{
		WBScroll(this);
	}
	else if(nIDEvent == m_nAutoRefreshTimer && m_bUseAutoRef && !IsActive)
	{
		//Refresh(); 
		try{
		Refresh2(REFRESH_COMPLETELY);
		}catch(...)
		{
		}
	}

	CFixedHtmlView::OnTimer(nIDEvent);
	}catch(...)
	{
	}
}


void CMyIEView::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	try{

	CFixedHtmlView::OnClose();
	}
	catch(...)
	{
		//SendMessage(WM_CLOSE);
		//return;
	}
}

void CMyIEView::ChangeProperty()
{
	try{
	IOleControl* poc;
	LPDISPATCH pDisp = GetHtmlDocument();
	if(pDisp != NULL)
	{
		if(SUCCEEDED(pDisp->QueryInterface(IID_IOleControl, (void**)&poc)))
		{
			poc->OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
			poc->Release();
		}
		pDisp->Release();
	}
	}catch(...)
	{
	}
}

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

	//start to scroll
	if(!m_nAutoRefreshTimer && m_bUseAutoRef && m_nRefreshInterval!=0)
	{
		//m_nScrollTimer = SetTimer(2132, (UINT)(1000*gSeed/m_nSrSpeed), NULL);
		m_nAutoRefreshTimer = SetTimer(3132+rand()/500, (UINT)(m_nRefreshInterval*1000), NULL);
	}
	else if(!m_bUseAutoRef && m_nAutoRefreshTimer)
	{		//stop the timer;
		if(m_nAutoRefreshTimer)
			KillTimer(m_nAutoRefreshTimer);
		m_nAutoRefreshTimer = 0;
	}
	
}

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

	static char sec[10];
	if(pCmdUI->m_pMenu!=NULL)
	{
		itoa(m_nRefreshInterval, sec, 10);
		CString menu;

⌨️ 快捷键说明

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