📄 setproxy.cpp
字号:
}
}
*/
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 + -