📄 myieview.cpp
字号:
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 + -