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

📄 mainfrm.cpp

📁 一个嵌入式的代码 MyIE3.0 代码 看了就知道了
💻 CPP
📖 第 1 页 / 共 5 页
字号:

	if(isLink)
		{
			CRect rectToolBar;
			REBARBANDINFO rbbi;
			m_LinkBar.GetItemRect(0, &rectToolBar);
			//m_LinkBar.SetSizes(rectToolBar.Size(), CSize(16,100));

			rbbi.cbSize = sizeof(rbbi);
			rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
			rbbi.wID = ID_VIEW_LINKS;
			rbbi.cxMinChild = rectToolBar.Width()+2;
			if(rectToolBar.Height()<22)
				rbbi.cyMinChild = 22;
			else
				rbbi.cyMinChild = rectToolBar.Height();
			
			int bc=m_LinkBar.GetToolBarCtrl().GetButtonCount();
			if(bc>0)
			{
				m_LinkBar.GetToolBarCtrl().GetItemRect(bc-1,&rectToolBar);
				/*rbbi.cx =*/ rbbi.cxIdeal = rectToolBar.right;
			}
			else
				/*rbbi.cx =*/ rbbi.cxIdeal = 2;

			int bandid = m_wndReBar.GetReBarCtrl().IDToIndex(ID_VIEW_LINKS);
			m_wndReBar.GetReBarCtrl().SetBandInfo(bandid, &rbbi);
		}

		if(FirstLevel)
		{
			CRect rectToolBar;
			REBARBANDINFO rbbi;
			m_FavBar.GetItemRect(0, &rectToolBar);

			rbbi.cbSize = sizeof(rbbi);
			rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
			rbbi.wID = ID_VIEW_FAVS;
			rbbi.cxMinChild = 2;
			if(rectToolBar.Height()<22)
				rbbi.cyMinChild = 22;
			else
				rbbi.cyMinChild = rectToolBar.Height();
			
			int bc=m_FavBar.GetToolBarCtrl().GetButtonCount();
			if(bc>0)
			{
				m_FavBar.GetToolBarCtrl().GetItemRect(bc-1,&rectToolBar);
				/*rbbi.cx =*/ rbbi.cxIdeal = rectToolBar.right;
			}
			else
				/*rbbi.cx =*/ rbbi.cxIdeal = 2;

			int bandid = m_wndReBar.GetReBarCtrl().IDToIndex(ID_VIEW_FAVS);
			m_wndReBar.GetReBarCtrl().SetBandInfo(bandid, &rbbi);
		}
	}
/*	catch(CMemoryException* e)
	{
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	}

	return nEndPos;
}

void CMainFrame::OnFavorite(UINT nID)
{
	short ks;
	ks =GetKeyState(VK_CONTROL);

	//static CString url;
	static TCHAR buf[INTERNET_MAX_PATH_LENGTH];
	try
	{
	if(nID>=0x1380)
	{
	//	url = m_astrFavoriteURLs[nID-0x1380];
		CMenu * pMenu = GetMenu();

		MENUITEMINFO mii; 
		if(pMenu!=NULL)
		{
			mii.fMask = MIIM_DATA|MIIM_TYPE;    // get the state of the menu item
			mii.dwTypeData = NULL;
			mii.cch = 0;
			mii.dwItemData = NULL;
			mii.cbSize = sizeof(mii);
			pMenu->GetMenuItemInfo(nID, &mii, FALSE); 
			CMenuData* pmd = (CMenuData*)(mii.dwItemData);
			if(mii.fType & MFT_OWNERDRAW && pmd!=NULL)
				if(pmd->m_szURL!=NULL)
					favurl=pmd->m_szURL;
		}

		if(favurl.Right(4) == _T(".lnk"))
		{
				if(ResolveLink(favurl, buf))
				{
					favurl = buf;
					//is exe?
					if(favurl.Right(4)==".EXE" || favurl.Right(4)==".exe")
					{
						ShellExecute(NULL, "open", favurl , "", NULL, SW_SHOW );
						return;
					}
				}
				else
					favurl = "about:blank";
		}
	}


	CChildFrame* tcf = (CChildFrame*)MDIGetActive();
	if (tcf!=NULL && tcf->m_pView!=NULL && !bFavInNewWindow && ks>=0)
		((CMyIEView*)tcf->m_pView)->ToNavigate(favurl, 0, NULL);
	else
	{
		tcf = NewChildWindow(0);
		if(tcf!=NULL)
			((CMyIEView*)tcf->m_pView)->ToNavigate(favurl, 0, NULL);
	}
	}
/*	catch(CMemoryException* e)
	{
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	}
}

void CMainFrame::OnFileNewBlank() 
{
	// TODO: Add your command handler code here
	//nOpenType = 0;
	//PostMessage(WM_COMMAND, ID_FILE_NEW_S);
	NewChildWindow(2,0, NULL, NULL, TRUE);
//	if(m_bActiveNewWindow)
		m_wndAddress->SetFocus();
}

void CMainFrame::OnFileNewCurrentpage() 
{
	// TODO: Add your command handler code here
//	nOpenType = 2;
	try{

	CString strURL;
	CChildFrame* tcf = (CChildFrame*)MDIGetActive();
	if (tcf!=NULL && tcf->m_pView!=NULL)
		// ((CMyIEView*)tcf->m_pView)->GetLocationURL(strURL);
		strURL = ((CMyIEView*)tcf->m_pView)->m_lpszUrl;
	else
		strURL = "about:blank";

	//PostMessage(WM_COMMAND, ID_FILE_NEW_S);
	NewChildWindow(1,2,strURL, NULL, TRUE);
//	if(m_bActiveNewWindow)
		m_wndAddress->SetFocus();
	}catch(...)
	{
	}
}


void CMainFrame::OnUpdateProgress(CCmdUI* pCmdUI) 
{

	try
	{
	if(percent<0)
	{
		if(m_wndStatusBar.IsProgressBarVisible())
			m_wndStatusBar.ShowProgressBar(false);
		pCmdUI->SetText("");
	}
	else
	{
		if(!m_wndStatusBar.IsProgressBarVisible())
			m_wndStatusBar.ShowProgressBar(true);
		m_wndStatusBar.SetPos(percent);
		static TCHAR str[8];
        sprintf(str, "%d%%", percent);
       m_wndStatusBar.SetWindowText(str);
	}
	}
/*	catch(CMemoryException* e)
	{
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	//	AfxMessageBox("update progress error");
	}
}


void CMainFrame::OnUpdateWins(CCmdUI* pCmdUI) 
{
	try
	{
	CTime t;
	CTimeSpan ts;
	static char temp[5];
	t = CTime::GetCurrentTime();
	ts = t - m_tLastWinsUpdate;  
	if(ts.GetTotalSeconds()>= 1)
	{
		int n = nWin;//m_wndTab.GetItemCount();
		itoa(n, temp, 10);
		pCmdUI->SetText(temp);
		m_tLastWinsUpdate = t;
	}
	}
/*	catch(CMemoryException* e)
	{
//		AfxMessageBox("update win error");
		if(e!=NULL)e->Delete();
	}*/
	catch(...)
	{
	}
}

void CMainFrame::OnUpdateIP(CCmdUI* pCmdUI) 
{
//	CString ip;
  //  CString addre;
	struct hostent * pHostent;
	pHostent = NULL;

	try{

	if(!m_bDisplayIP)
	{
		pCmdUI->SetText("");
		return;
	}

	if(!bSockInied)
	{
		bSockInied = TRUE;
		WSADATA wsaData;
		WORD wVersionRequested = MAKEWORD(1, 1);
		int nResult = WSAStartup(wVersionRequested, &wsaData);
		if (nResult != 0)
			return;
		if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
		{
			WSACleanup();
			return;
		}
	}


	CTime t;
	CTimeSpan ts;

	//ip ="";
	t = CTime::GetCurrentTime();
	ts = t - m_tLastIPUpdate;  
	int mini = 5, sec = ts.GetTotalSeconds();
	if(sec>mini && m_strLastIP!="127.0.0.1")
		mini=9;
	if(sec > 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;
*/
		try{
		//get IP Address
		int i=0,j=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 = "";
					m_strLastIP.Empty();
					gaddre.Empty();
 					for( j = 0; j < pHostent->h_length; j++ )
 					{
 
 						if( j > 0 )
 							m_strLastIP += ".";
 
 						gaddre.Format("%u", (unsigned int)((unsigned
		 				char*)pHostent->h_addr_list[i])[j]);
						m_strLastIP += gaddre;
 					}
					i++;
				}

				pCmdUI->SetText(m_strLastIP);
				//m_strLastIP = ip;

			}
		}
		
		}
		catch(...)
		{

		}
		
	/*	try{
			if(pHostent!=NULL)
				delete pHostent; //?
		}catch(...)
		{
		}*/

	}

	}catch(...)
	{
	}
}


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

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

	nTotalTabs ++;

	int presel = m_wndTab.GetCurSel();
	if(m_bNextTab)
		CurID = presel+1;

	
	TCITEM TabCtrlItem;
	tab.LoadString(IDS_UNTITLED);
	TabCtrlItem.mask = TCIF_TEXT|TCIF_PARAM;
	if(label==NULL)
		TabCtrlItem.pszText = tab.GetBuffer(30);
	else
		TabCtrlItem.pszText = label;
	TabCtrlItem.lParam = (LPARAM)lpMvw;

	m_wndTab.InsertItem( CurID, &TabCtrlItem );

	tab.ReleaseBuffer();

	//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);

	nWin = m_wndTab.GetItemCount();

//	SaveLastVisit();
	bVerbose = TRUE;

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

	return CurID;

}


void CMainFrame::OnSelChange(NMHDR* pNotifyStruct, LRESULT* pResult)
{
	try
	{
	TCITEM TabCtrlItem;

	int n = m_wndTab.GetCurSel();
	if(n>=0)
	{
		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;
			}

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


void CMainFrame::OnRClick(NMHDR* pNotifyStruct, LRESULT* pResult

⌨️ 快捷键说明

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