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

📄 setproxy.cpp

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

}
*/
void CSetProxy::OnProxyNew() 
{
	// TODO: Add your control notification handler code here
	if(m_nList<0)
		return;

	POSITION pos = m_CateList.GetFirstSelectedItemPosition();
	if(pos==NULL)
	{
		m_bUnUpdateProxy = TRUE;
		m_CateList.SetItemState(m_nList, LVIS_SELECTED, LVIS_SELECTED);
	}

	CProxyInfo proxyinfo;
	CProxyList* pl = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList);
	if(pl->m_bIsWebProxy)
		proxyinfo.m_Proxy = "http://";

	if(proxyinfo.DoModal() == IDOK)
	{
		proxyinfo.m_Proxy.TrimLeft();
		proxyinfo.m_Proxy.TrimRight();

		if(proxyinfo.m_ProxyName.IsEmpty())
			proxyinfo.m_ProxyName = proxyinfo.m_Proxy;

		int i;
		POSITION pos = m_ProxyList.GetFirstSelectedItemPosition();
		if(pos!=NULL)
		{
			i = m_ProxyList.GetNextSelectedItem(pos);
			i++;
		}
		else
			i= m_ProxyList.GetItemCount();

		m_ProxyList.InsertItem(i, proxyinfo.m_ProxyName);
		m_ProxyList.SetItemText(i, 1, proxyinfo.m_Proxy);

		CString str;
		str.LoadString(IDS_SP_INVALID + proxyinfo.m_Speed);
		m_ProxyList.SetItemText(i, 2, str);
		m_ProxyList.SetFocus();
		m_ProxyList.EnsureVisible(i,FALSE);
//		m_ProxyList.EditLabel(i);
	//	m_astrTempProxyUser.AddTail("");
	//	m_astrTempProxyPwd.AddTail("");
/*		pos = m_aTempProxySpeed.FindIndex(i-1);
		if(pos!=NULL)
			m_aTempProxySpeed.InsertAfter(pos, proxyinfo.m_Speed);
		else
			m_aTempProxySpeed.AddTail(proxyinfo.m_Speed);*/
		CProxyItem pi;
		pi.m_nProxySpeed = proxyinfo.m_Speed;
		pi.m_strProxy = proxyinfo.m_Proxy;
		pi.m_strProxyName = proxyinfo.m_ProxyName;
		pl->m_Proxies.InsertAt(i, pi);
	}
}

void CSetProxy::OnProxyDel() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_ProxyList.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem = m_ProxyList.GetNextSelectedItem(pos);
		m_ProxyList.DeleteItem(nItem);
		m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.RemoveAt(nItem);
		CProxyList* pl=m_tmpProxyCategory->m_ProxyCategory.GetAt(m_nList);

		if(nItem<m_ProxyList.GetItemCount())
		{
			m_ProxyList.SetItemState(nItem, LVIS_SELECTED,LVIS_SELECTED);
			if(!pl->m_bIsWebProxy)
				m_SelProxy = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxy;
			else
				m_SelWebProxy = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxy;
		}
		else
		{
			if(!pl->m_bIsWebProxy)
				m_SelProxy = "";
			else
				m_SelWebProxy = "";
		}
	}
	
}

/*void CSetProxy::OnEndlabeleditWebProList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
	// TODO: Add your control notification handler code here
	CString str;
//	m_WebProxyList.GetEditControl()->GetWindowText(str);
	str.MakeLower();
	str.TrimLeft();
	str.TrimRight();
//	m_WebProxyList.SetItemText(pDispInfo->item.iItem,0,str);
	
	*pResult = 0;
}*/

void CSetProxy::OnEndlabeleditProxyList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
	// TODO: Add your control notification handler code here
	CString str;
	m_ProxyList.GetEditControl()->GetWindowText(str);
	str.TrimLeft();
	str.TrimRight();

	m_ProxyList.SetItemText(pDispInfo->item.iItem,0,str);
	
	m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(pDispInfo->item.iItem).m_strProxyName = str;

	*pResult = 0;
}

void CSetProxy::OnRclickProxyList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem;

	CPoint pt;
	GetCursorPos(&pt);
	m_ProxyList.ScreenToClient(&pt);
	nItem = m_ProxyList.HitTest(pt);
	m_nItem = nItem;

	if (nItem != -1) 
	{
		CMenu menu;
		CMenu* pPopup;

		// the font popup is stored in a resource
		menu.LoadMenu(IDR_SPEED);
		pPopup = menu.GetSubMenu(0);
		m_ProxyList.ClientToScreen(&pt);
		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y + 1, this);

	}
	
	*pResult = 0;
}

void CSetProxy::OnSetSpeed(UINT nID) 
{
	int c=nID - ID_SP_INVALID;
	m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(m_nItem).m_nProxySpeed = c;

/*	POSITION pos;
	if(m_nList == 0)
		pos = m_aTempProxySpeed.FindIndex(m_nItem);
	else
		pos = m_aTempWebProxySpeed.FindIndex(m_nItem);

	if(pos!=NULL)
		if(m_nList == 0)
			m_aTempProxySpeed.SetAt(pos, c);
		else
			m_aTempWebProxySpeed.SetAt(pos, c);
*/
	CString str;
	str.LoadString(c + IDS_SP_INVALID);
	m_ProxyList.SetItemText( m_nItem, 2, str );

}

/*void CSetProxy::OnRclickWebProList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem;

	CPoint pt;
	GetCursorPos(&pt);
	m_WebProxyList.ScreenToClient(&pt);
	nItem = m_WebProxyList.HitTest(pt);
	m_nItem = nItem;
	m_nList = 1; //web proxy list;

	if (nItem != -1) 
	{
		CMenu menu;
		CMenu* pPopup;

		// the font popup is stored in a resource
		menu.LoadMenu(IDR_SPEED);
		pPopup = menu.GetSubMenu(0);
		m_WebProxyList.ClientToScreen(&pt);
		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y + 1, this);

	}
	
	*pResult = 0;
}*/

void CSetProxy::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	POSITION pos = m_ProxyList.GetFirstSelectedItemPosition();
	int nItem = -1, newItem;
	if(pos!=NULL)
	{
		nItem = m_ProxyList.GetNextSelectedItem(pos);
		if(pNMUpDown->iDelta<0)
			newItem = nItem -1;
		else
			newItem = nItem + 1;
		int n = m_ProxyList.GetItemCount();
		if(newItem>=0 && newItem<n)
		{
			CString str = m_ProxyList.GetItemText(nItem,0);
			CString str2 = m_ProxyList.GetItemText(nItem,1);
			m_ProxyList.DeleteItem(nItem);

			m_ProxyList.InsertItem(newItem, str);
			m_ProxyList.SetItemText(newItem, 1, str2);
//			pos = m_aTempProxySpeed.FindIndex(nItem);
			str.LoadString(IDS_SP_INVALID + m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_nProxySpeed);
			m_ProxyList.SetItemText(newItem, 2, str);
			m_ProxyList.SetItemState(newItem, LVIS_SELECTED, LVIS_SELECTED);
			m_ProxyList.EnsureVisible(newItem, FALSE);

/*			pos = m_astrTempProxyUser.FindIndex(nItem);
			POSITION pos1= m_astrTempProxyUser.FindIndex(newItem);
			if(pNMUpDown->iDelta<0)
				m_astrTempProxyUser.InsertBefore(pos1, m_astrTempProxyUser.GetAt(pos));
			else
				m_astrTempProxyUser.InsertAfter(pos1, m_astrTempProxyUser.GetAt(pos));
			m_astrTempProxyUser.RemoveAt(pos);

			pos = m_astrTempProxyPwd.FindIndex(nItem);
			pos1= m_astrTempProxyPwd.FindIndex(newItem);
			if(pNMUpDown->iDelta<0)
				m_astrTempProxyPwd.InsertBefore(pos1, m_astrTempProxyPwd.GetAt(pos));
			else
				m_astrTempProxyPwd.InsertAfter(pos1, m_astrTempProxyPwd.GetAt(pos));
			m_astrTempProxyPwd.RemoveAt(pos);
*/
//			pos = m_aTempProxySpeed.FindIndex(nItem);
//			POSITION pos1= m_aTempProxySpeed.FindIndex(newItem);

			//m_aTempProxySpeed.InsertBefore(pos1, m_aTempProxySpeed.GetAt(pos));
			int tmp;
			CString strtmp;
			strtmp = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxyName;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxyName = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_strProxyName;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_strProxyName = strtmp;

			strtmp = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxy;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_strProxy = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_strProxy;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_strProxy = strtmp;
	
			tmp = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_nProxySpeed;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_nProxySpeed = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_nProxySpeed;
			m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(newItem).m_nProxySpeed = tmp;

		}
	}

	*pResult = 0;
}

void CSetProxy::OnDeltaposSpin2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	POSITION pos = m_CateList.GetFirstSelectedItemPosition();
	int nItem = -1, newItem;
	if(pos!=NULL)
	{
		nItem = m_CateList.GetNextSelectedItem(pos);
		if(pNMUpDown->iDelta<0)
			newItem = nItem -1;
		else
			newItem = nItem + 1;
		int n = m_CateList.GetItemCount();
		if(newItem>=0 && newItem<n)
		{
			CString str = m_CateList.GetItemText(nItem,0);
			CProxyList* pl;
			pl = m_tmpProxyCategory->m_ProxyCategory.GetAt(nItem);
			m_tmpProxyCategory->m_ProxyCategory.SetAt(nItem, m_tmpProxyCategory->m_ProxyCategory.GetAt(newItem));
			m_tmpProxyCategory->m_ProxyCategory.SetAt(newItem, pl);

			int icon;
			if(pl->m_bIsWebProxy)
				icon=0;
			else
				icon=1;
			m_CateList.DeleteItem(nItem);

			m_bUnUpdateProxy = TRUE;
			m_CateList.InsertItem(newItem, str, icon);
			m_CateList.SetItemState(newItem, LVIS_SELECTED, LVIS_SELECTED);
			m_CateList.EnsureVisible(newItem, FALSE);
			m_nList = newItem;
		
			
		}
	}

	*pResult = 0;
}

/*void CSetProxy::OnWebproxyModify() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_WebProxyList.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem = m_WebProxyList.GetNextSelectedItem(pos);
		CProxyInfo proxyinfo;
		proxyinfo.m_ProxyName = m_WebProxyList.GetItemText(nItem, 0);
		proxyinfo.m_Proxy = m_WebProxyList.GetItemText(nItem, 1);
		pos = m_aTempWebProxySpeed.FindIndex(nItem);
		proxyinfo.m_Speed = m_aTempWebProxySpeed.GetAt(pos);

		if(proxyinfo.DoModal() == IDOK)
		{
			if(proxyinfo.m_ProxyName.IsEmpty())
				proxyinfo.m_ProxyName = proxyinfo.m_Proxy;

			m_WebProxyList.SetItemText(nItem, 0, proxyinfo.m_ProxyName);
			m_WebProxyList.SetItemText(nItem, 1, proxyinfo.m_Proxy);

			CString str;
			str.LoadString(IDS_SP_INVALID + proxyinfo.m_Speed);
			m_WebProxyList.SetItemText(nItem, 2, str);
			m_aTempWebProxySpeed.SetAt(pos, proxyinfo.m_Speed);
		}	
	}
}
*/
void CSetProxy::OnModifyproxy() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_ProxyList.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem = m_ProxyList.GetNextSelectedItem(pos);
		CProxyInfo proxyinfo;
		proxyinfo.m_ProxyName = m_ProxyList.GetItemText(nItem, 0);
		proxyinfo.m_Proxy = m_ProxyList.GetItemText(nItem, 1);
//		pos = m_aTempProxySpeed.FindIndex(nItem);
		proxyinfo.m_Speed = m_tmpProxyCategory->m_ProxyCategory.ElementAt(m_nList)->m_Proxies.ElementAt(nItem).m_nProxySpeed;

⌨️ 快捷键说明

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