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

📄 mainfrm.cpp

📁 myie的源程序是用VC++写自已可以扩搌使用
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	CTime t = CTime::GetCurrentTime();
	CTimeSpan ts = t - m_tLastIPUpdate;  
	int mini = 4;
	if(m_strLastIP!="127.0.0.1")
		mini=8;
	if(m_bDisplayIP && ts.GetTotalSeconds()> mini)
	{
		m_tLastIPUpdate = t;
		//is any window is downloading
//11/5
/*		BOOL IsDownloading = FALSE;
		CChildFrame* tcf;
		int n = m_wndTab.GetItemCount();
		TCITEM TabCtrlItem;
		TabCtrlItem.mask = TCIF_PARAM;
		for(int l=n-1;l>=0;l--)
		{
			TabCtrlItem.lParam = 0;
			m_wndTab.GetItem(l, &TabCtrlItem);
			tcf = ((CChildFrame*)TabCtrlItem.lParam);
			if(tcf != NULL && tcf->m_pView != NULL)
			{
				if(tcf->m_pView->m_nProgress>=0)
					IsDownloading = TRUE;
			}
		}
		if(IsDownloading)
			return;
*/
		//get IP Address
		char addr[256];
		struct hostent * pHostent=NULL;
		int i=0,j=0;
		addr[0]=0;
		if(gethostname(addr,255)!=SOCKET_ERROR )
		{
			pHostent=gethostbyname(addr);
			if(pHostent!=NULL && pHostent->h_addr_list[0]!= NULL)
			{
				int i = 0;
				while(pHostent->h_addr_list[i]!= NULL)
				{
					ip = "";
 					for( j = 0; j < pHostent->h_length; j++ )
 					{
						 CString addre;
 
 						if( j > 0 )
 							ip += ".";
 
 						addre.Format("%u", (unsigned int)((unsigned
		 				char*)pHostent->h_addr_list[i])[j]);
						ip += addre;
 					}
					i++;
				}

				delete pHostent;
				pCmdUI->SetText(ip);
				m_strLastIP = ip;

			}
		}
	}

}


int CMainFrame::AddNewTab(CWnd* lpMvw, int CurID, LPTSTR label, BOOL bAddLast)
{
	if(lpMvw==NULL)
		return 0;

	if (bAddLast)
		CurID = nTotalTabs;
	else
		CurID ++;

	nTotalTabs ++;

	int presel = m_wndTab.GetCurSel();
	if(m_bNextTab)
		CurID = presel+1;
	
	
	TCITEM TabCtrlItem;
	CString str;
	str.LoadString(IDS_UNTITLED);
	TabCtrlItem.mask = TCIF_TEXT|TCIF_PARAM;
	if(label==NULL)
		TabCtrlItem.pszText = str.GetBuffer(1);
	else
		TabCtrlItem.pszText = label;
	TabCtrlItem.lParam = (LPARAM)lpMvw;

	m_wndTab.InsertItem( CurID, &TabCtrlItem );

	//select this tab
	if(((CChildFrame*)lpMvw)->m_pView!=NULL)
		if(((CChildFrame*)lpMvw)->m_pView->IsActive)//m_bActiveNewWindow
			m_wndTab.SetCurSel(CurID);
		else
			m_wndTab.SetCurSel(presel);

	PostMessage(WM_UPDATE_TAB, TRUE);
//	PostMessage(WM_UPDATE_TAB_TIP);

	return CurID;

}


void CMainFrame::OnSelChange(NMHDR* pNotifyStruct, LRESULT* pResult)
{

	int n = m_wndTab.GetCurSel();
	if(n>=0)
	{
		TCITEM TabCtrlItem;
		TabCtrlItem.mask = TCIF_PARAM;
		m_wndTab.GetItem(n, &TabCtrlItem);
		if(TabCtrlItem.lParam != NULL)
		{	
			BOOL bMax;
			CChildFrame * tcf;
			tcf = (CChildFrame*)MDIGetActive(&bMax);
			((CChildFrame*)TabCtrlItem.lParam)->m_bSkipSel = TRUE;
			((CChildFrame*)TabCtrlItem.lParam)->nCurTabID = n;

			if(((CChildFrame*)TabCtrlItem.lParam)->bProtect)
				PostMessage(WM_ACTIVATE_WINDOW, 0, TabCtrlItem.lParam);
			else
				MDIActivate((CChildFrame*)TabCtrlItem.lParam);
			if(tcf!=NULL && bMax)
			{
				m_bMax = 1;
			}

		}
	}
}

void CMainFrame::OnRClick(NMHDR* pNotifyStruct, LRESULT* pResult)
{
	CPoint point;

	// translate the current toolbar item rectangle into screen coordinates
	// so that we'll know where to pop up the menu
	GetCursorPos(&point);

	int n = m_wndTab.GetItemCount();
	BOOL found = false;
	int i=0;
	CRect rect;

	while (i<n && !found)
	{
		m_wndTab.GetItemRect(i, &rect);
		m_wndTab.ClientToScreen(&rect);

		if(rect.PtInRect(point))
		{	
			found = true;				
		}
		else
			i++;
	}
	nRTabID = i;



	CMenu menu;
	CMenu* pPopup;

		// the font popup is stored in a resource
		menu.LoadMenu(IDR_RTAB);
		pPopup = menu.GetSubMenu(0);
		
		//if is locked
		TCITEM TabCtrlItem;
		TabCtrlItem.mask = TCIF_PARAM;

		m_wndTab.GetItem(nRTabID, &TabCtrlItem);
		if(TabCtrlItem.lParam != NULL)
		{
			if(((CChildFrame*)TabCtrlItem.lParam)->bLock)
				pPopup->CheckMenuItem(ID_RTAB_LOCK, MF_CHECKED );

			if(((CChildFrame*)TabCtrlItem.lParam)->bProtect)
				pPopup->CheckMenuItem(ID_RTAB_PROTECT, MF_CHECKED );

			if(m_bTopTab)
			{
				CString str;
				pPopup->GetMenuString(ID_FILE_CLOSE_2, str, MF_BYCOMMAND);
				pPopup->DeleteMenu(ID_FILE_CLOSE_2, MF_BYCOMMAND);
				pPopup->InsertMenu(0, MF_BYPOSITION, ID_FILE_CLOSE_2, str);
				pPopup->InsertMenu(1, MF_BYPOSITION|MF_SEPARATOR);
			}
		}


	pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
	*pResult = 0;
}


void CMainFrame::OnViewAddressbar() 
{
	// TODO: Add your command handler code here
	REBARBANDINFO rbbi;
	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_ID|RBBIM_STYLE;
	int nb = m_wndReBar.GetReBarCtrl( ).IDToIndex(ID_VIEW_ADDRESSBAR);
	m_wndReBar.GetReBarCtrl().GetBandInfo(nb, &rbbi);

	if( rbbi.fStyle & RBBS_HIDDEN  || !m_wndAddress->IsWindowVisible())
	{
		m_AddressBar.ShowWindow(SW_SHOW);
		m_wndReBar.GetReBarCtrl( ).ShowBand(nb, TRUE);
		GetMenu()->CheckMenuItem(ID_VIEW_ADDRESSBAR, MF_CHECKED);

	}
	else
	{
		m_wndReBar.GetReBarCtrl( ).ShowBand(nb,FALSE);
		m_AddressBar.ShowWindow(SW_HIDE);
		GetMenu()->CheckMenuItem(ID_VIEW_ADDRESSBAR, MF_UNCHECKED);
	}
}

void CMainFrame::OnViewTaskbar() 
{
	// TODO: Add your command handler code here
	REBARBANDINFO rbbi;
	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_ID|RBBIM_STYLE;
	int nb;
	if(m_bTopTab)
	{
		nb = m_wndReBar.GetReBarCtrl( ).IDToIndex(ID_VIEW_TASKBAR);
		m_wndReBar.GetReBarCtrl().GetBandInfo(nb, &rbbi);
	}
	else
	{
		nb=0;
		m_wndReBar2.GetReBarCtrl().GetBandInfo(nb, &rbbi);
	}

	if(rbbi.fStyle & RBBS_HIDDEN)
	{
		if(m_bTopTab)
		{
			m_wndReBar.GetReBarCtrl( ).ShowBand(nb,TRUE);
		}
		else
		{
			m_wndReBar2.GetReBarCtrl( ).ShowBand(0,TRUE);
		}
		m_wndTab.ShowWindow(SW_SHOW);
		GetMenu()->CheckMenuItem(ID_VIEW_TASKBAR, MF_CHECKED);

	}
	else
	{
		if(m_bTopTab)
		{
			m_wndReBar.GetReBarCtrl( ).ShowBand(nb,FALSE);
		}
		else
		{
			m_wndReBar2.GetReBarCtrl( ).ShowBand(0,FALSE);
		}
		m_wndTab.ShowWindow(SW_HIDE);
		GetMenu()->CheckMenuItem(ID_VIEW_TASKBAR, MF_UNCHECKED);

	}

}

void CMainFrame::OnFileSaveas() 
{
	// TODO: Add your command handler code here
	//COleVariant vaZoomFactor(3l);
	CChildFrame* tcf = (CChildFrame*)MDIGetActive();
	if (tcf!=NULL && tcf->m_pView!=NULL)
	{
		tcf->m_pView->ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT,
		   NULL, NULL);
	}

}

void CMainFrame::OnFileSavehtml() 
{
	// TODO: Add your command handler code here
	CChildFrame* tcf = (CChildFrame*)MDIGetActive();
	if (tcf!=NULL && tcf->m_pView!=NULL)
	{
		tcf->m_pView->ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER,
		   NULL, NULL);
	}

}

void CMainFrame::OnFileCloseall() 
{
	// TODO: Add your command handler code here
	if(AfxMessageBox(IDS_CLOSE_ALL_CONF, MB_YESNO|MB_ICONQUESTION)==IDNO)
		return;

	CChildFrame* tcf;
	int n = m_wndTab.GetItemCount();
	TCITEM TabCtrlItem;
	TabCtrlItem.mask = TCIF_PARAM;
	int l =n-1;

	for(int i=n-1;i>=0;i--)
	{
		m_wndTab.GetItem(l, &TabCtrlItem);
		tcf = ((CChildFrame*)TabCtrlItem.lParam);
		if(tcf != NULL)
		{
			if(!tcf->bLock)
				tcf->SendMessage(WM_CLOSE);
		}
		l--;
	}

}

void CMainFrame::SetTabTitle(LPTSTR lpszTitle, int nItem)
{
	//set the new title of tab
	char *temp;
	temp = new char[m_nTitleLen+4];
	TCITEM TabCtrlItem;
	TabCtrlItem.mask = TCIF_TEXT;

	if(strlen(lpszTitle)>m_nTitleLen)
	{
		strncpy(temp, lpszTitle, m_nTitleLen);
		temp[m_nTitleLen]=0;
		TabCtrlItem.pszText = temp;
	}
	else
		TabCtrlItem.pszText = lpszTitle;

	m_wndTab.SetItem( nItem, &TabCtrlItem );
	m_wndTab.GetToolTips()->UpdateTipText(lpszTitle, &m_wndTab, nItem);
	//PostMessage(WM_UPDATE_TAB_TIP);

	delete[] temp;

}

void CMainFrame::OnFileWorkoffline() 
{
	// TODO: Add your command handler code here

	//Get global offline setting
	DWORD           sz;
	//TCHAR           szPath[MAX_PATH];
	HKEY            hKey;
	DWORD           dwSize = sizeof(DWORD);

	if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), &hKey) != ERROR_SUCCESS)
	{
		TRACE0("Global settings not found\n");
		return ;
	}

	if(RegQueryValueEx(hKey, _T("GlobalUserOffline"), NULL, NULL, (LPBYTE)&sz, &dwSize) == ERROR_SUCCESS)
	{
		//set new offline value
		sz = 1-sz;
		RegSetValueEx(hKey, _T("GlobalUserOffline"), NULL, REG_DWORD, (LPBYTE)(&sz), dwSize);

		if(sz!=0)
		{
			GetMenu()->CheckMenuItem(ID_FILE_WORKOFFLINE, MF_CHECKED);
		}
		else
		{
			GetMenu()->CheckMenuItem(ID_FILE_WORKOFFLINE, MF_UNCHECKED);
		}

	}
	RegCloseKey(hKey);

	//infor the system that setting is changed.
	InternetSetOption(
		NULL,
		INTERNET_OPTION_SETTINGS_CHANGED,
		NULL,
		0
	);

}

int CMainFrame::FindTab(CChildFrame *lpFrame, BOOL bCleanBlank)
{
	int n = m_wndTab.GetItemCount();
	BOOL found = false;
	register int i=0;
	TCITEM TabCtrlItem;
	TabCtrlItem.mask = TCIF_PARAM;

//	11/7
/*	if(bCleanBlank)
	{
		while (i<n && !found)
		{
			TabCtrlItem.lParam = 0;
			m_wndTab.GetItem(i, &TabCtrlItem);
			if(TabCtrlItem.lParam != 0)
				if(((CChildFrame*)TabCtrlItem.lParam)->m_pBlankChild == lpFrame)
				{	
					((CChildFrame*)TabCtrlItem.lParam)->m_pBlankChild = NULL;
					found = true;				
				}
				else
					i++;
			else
				i++;
		}
	}
*/	
	i=0; found=false;
	while (i<n && !found)
	{
		TabCtrlItem.lParam = 0;
		m_wndTab.GetItem(i, &TabCtrlItem);
		if(TabCtrlItem.lParam == (LPARAM)lpFrame)
		{	
			found = true;				
		}
		else
			i++;
	}


	return i;
}


void CMainFrame::LoadTypedURL()
{
	TCHAR           sz[MAX_PATH];
	//TCHAR           szPath[MAX_PATH];
	HKEY            hKey;
	DWORD           dwSize;
	TCHAR			id[9] = "url";
	int				i = 1;

	if(RegOpenKey(HKEY_CURRENT_USER, 

⌨️ 快捷键说明

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