📄 setproxy.cpp
字号:
// SetProxy.cpp : implementation file
//
#include "stdafx.h"
#include "MyIE.h"
#include "SetProxy.h"
#include "MainFrm.h"
#include "ProxyInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetProxy dialog
//0. invalid, 1. slower, 2. slow, 3. normal, 4. fast, 5. faster
CSetProxy::CSetProxy(CWnd* pParent /*=NULL*/)
: CDialog(CSetProxy::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetProxy)
m_bUseWebProxy = FALSE;
m_bUseProxy = FALSE;
// m_strByPass = _T("");
//}}AFX_DATA_INIT
m_pDragImage = NULL;
}
void CSetProxy::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetProxy)
DDX_Control(pDX, IDC_BYPASS, m_ByPass);
DDX_Control(pDX, IDC_CATES, m_CateList);
DDX_Control(pDX, IDC_PROXY_LIST, m_ProxyList);
DDX_Check(pDX, IDC_USE_WEB_PROXY, m_bUseWebProxy);
DDX_Check(pDX, IDC_USER_PROXY, m_bUseProxy);
// DDX_Text(pDX, IDC_BYPASS, m_strByPass);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetProxy, CDialog)
//{{AFX_MSG_MAP(CSetProxy)
ON_BN_CLICKED(IDC_PROXY_NEW, OnProxyNew)
ON_BN_CLICKED(IDC_PROXY_DEL, OnProxyDel)
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_PROXY_LIST, OnEndlabeleditProxyList)
ON_NOTIFY(NM_RCLICK, IDC_PROXY_LIST, OnRclickProxyList)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1, OnDeltaposSpin1)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN2, OnDeltaposSpin2)
ON_BN_CLICKED(IDC_MODIFYPROXY, OnModifyproxy)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_CATES, OnItemchangedCates)
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_CATES, OnEndlabeleditCates)
ON_BN_CLICKED(IDC_NEWCATE, OnNewcate)
ON_EN_CHANGE(IDC_BYPASS, OnChangeBypass)
ON_BN_CLICKED(IDC_DELCATE, OnDelcate)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_PROXY_LIST, OnItemchangedProxyList)
ON_NOTIFY(LVN_BEGINDRAG, IDC_PROXY_LIST, OnBegindragProxyList)
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
ON_COMMAND_RANGE(ID_SP_INVALID, ID_SP_FASTER, OnSetSpeed)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetProxy message handlers
BOOL CSetProxy::OnInitDialog()
{
CDialog::OnInitDialog();
CString str;
m_tmpProxyCategory = new CProxyCategory(((CMainFrame*)pMainFrame)->m_aProxyCategories);
// TODO: Add extra initialization here
//load proxy list
/* POSITION pos = ((CMainFrame*)pMainFrame)->m_astrProxy.GetHeadPosition();
POSITION pos1 = ((CMainFrame*)pMainFrame)->m_aProxySpeed.GetHeadPosition();
POSITION pos2 = ((CMainFrame*)pMainFrame)->m_astrProxyName.GetHeadPosition();
*/ CRect rect;
int i=0;
m_ProxyList.GetWindowRect(rect);
m_ProxyList.InsertColumn(0,"Name");
m_ProxyList.SetColumnWidth(0, 110);
m_ProxyList.InsertColumn(1,"Proxy");
m_ProxyList.SetColumnWidth(1, rect.Width()-175);
m_ProxyList.InsertColumn(2,"Speed");
m_ProxyList.SetColumnWidth(2, 45);
//image
CImageList img;
img.Create(IDB_BITMAP10, 9, 0, RGB(255, 0, 255));
m_CateList.SetImageList(&img, LVSIL_SMALL);
img.Detach();
//m_ProxyList.SetExtendedStyle(m_ProxyList.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
//fill with the default proxy list
//category list
m_nList = m_nSelProxyList;
int icon;
for(i=0; i<=m_tmpProxyCategory->m_ProxyCategory.GetUpperBound(); i++)
{
if(m_tmpProxyCategory->m_ProxyCategory.ElementAt(i)->m_bIsWebProxy)
icon=0;
else
icon=1;
m_CateList.InsertItem(i, m_tmpProxyCategory->m_ProxyCategory.ElementAt(i)->m_strCategoryName, icon);
}
CProxyList* pl=NULL;
if(m_nList>=0 && m_nList<i)
pl=m_tmpProxyCategory->m_ProxyCategory.GetAt(m_nList);
if(pl!=NULL)
{
for(i=0; i<=pl->m_Proxies.GetUpperBound(); i++)
{
m_ProxyList.InsertItem(i, pl->m_Proxies.ElementAt(i).m_strProxyName);
m_ProxyList.SetItemText(i, 1, pl->m_Proxies.ElementAt(i).m_strProxy);
if(m_SelProxy == pl->m_Proxies.ElementAt(i).m_strProxy)
m_ProxyList.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);
str.LoadString(IDS_SP_INVALID + pl->m_Proxies.ElementAt(i).m_nProxySpeed);
m_ProxyList.SetItemText(i, 2, str);
}
m_ByPass.SetWindowText(pl->m_strProxyByPass);
}
m_CateList.SetItemState(m_nList, LVIS_SELECTED, LVIS_SELECTED);
m_bUnUpdateProxy = TRUE;
//load web proxy
/* pos = ((CMainFrame*)pMainFrame)->m_astrWebProxy.GetHeadPosition();
pos1 = ((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetHeadPosition();
pos2 = ((CMainFrame*)pMainFrame)->m_astrWebProxyName.GetHeadPosition();
i=0;
m_WebProxyList.GetWindowRect(rect);
m_WebProxyList.InsertColumn(0,"Name");
m_WebProxyList.SetColumnWidth(0, 75);
m_WebProxyList.InsertColumn(1,"Web Proxy");
m_WebProxyList.SetColumnWidth(1, rect.Width()-130);
m_WebProxyList.InsertColumn(2,"Speed");
m_WebProxyList.SetColumnWidth(2, 45);
m_WebProxyList.SetExtendedStyle(m_WebProxyList.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
//select web proxy
m_SelWebProxy.MakeLower();
m_SelWebProxy.TrimLeft();
m_SelWebProxy.TrimRight();
while(pos!=NULL && pos1!=NULL && pos2 != NULL)
{
m_WebProxyList.InsertItem(i, ((CMainFrame*)pMainFrame)->m_astrWebProxyName.GetAt(pos2));
((CMainFrame*)pMainFrame)->m_astrWebProxyName.GetNext(pos2);
str = ((CMainFrame*)pMainFrame)->m_astrWebProxy.GetAt(pos);
str.MakeLower();
str.TrimLeft();
str.TrimRight();
m_WebProxyList.SetItemText(i, 1, str);
((CMainFrame*)pMainFrame)->m_astrWebProxy.GetNext(pos);
if(m_SelWebProxy == str)
m_WebProxyList.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);
str.LoadString(IDS_SP_INVALID + ((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetAt(pos1));
m_WebProxyList.SetItemText(i, 2, str);
((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetNext(pos1);
i++;
}
*/
//proxy user, password, speed
/* pos = ((CMainFrame*)pMainFrame)->m_astrProxyUser.GetHeadPosition();
while(pos!=NULL)
{
m_astrTempProxyUser.AddTail(((CMainFrame*)pMainFrame)->m_astrProxyUser.GetAt(pos));
((CMainFrame*)pMainFrame)->m_astrProxyUser.GetNext(pos);
}
pos = ((CMainFrame*)pMainFrame)->m_astrProxyPwd.GetHeadPosition();
while(pos!=NULL)
{
m_astrTempProxyPwd.AddTail(((CMainFrame*)pMainFrame)->m_astrProxyPwd.GetAt(pos));
((CMainFrame*)pMainFrame)->m_astrProxyPwd.GetNext(pos);
}*/
/* pos = ((CMainFrame*)pMainFrame)->m_aProxySpeed.GetHeadPosition();
while(pos!=NULL)
{
m_aTempProxySpeed.AddTail(((CMainFrame*)pMainFrame)->m_aProxySpeed.GetAt(pos));
((CMainFrame*)pMainFrame)->m_aProxySpeed.GetNext(pos);
}
*/
/* pos = ((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetHeadPosition();
while(pos!=NULL)
{
m_aTempWebProxySpeed.AddTail(((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetAt(pos));
((CMainFrame*)pMainFrame)->m_aWebProxySpeed.GetNext(pos);
}
*/
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetProxy::OnOK()
{
// TODO: Add extra validation here
try{
((CMainFrame*)pMainFrame)->m_aProxyCategories.Copy(*m_tmpProxyCategory);
/*2.3 ((CMainFrame*)pMainFrame)->m_astrProxyName.RemoveAll();
((CMainFrame*)pMainFrame)->m_astrProxy.RemoveAll();
int n = m_ProxyList.GetItemCount();
for( int i=0; i<n; i++)
{
((CMainFrame*)pMainFrame)->m_astrProxyName.AddTail(m_ProxyList.GetItemText(i,0));
((CMainFrame*)pMainFrame)->m_astrProxy.AddTail(m_ProxyList.GetItemText(i,1));
}
*/
/* ((CMainFrame*)pMainFrame)->m_astrWebProxyName.RemoveAll();
((CMainFrame*)pMainFrame)->m_astrWebProxy.RemoveAll();
n = m_WebProxyList.GetItemCount();
for( i=0; i<n; i++)
{
((CMainFrame*)pMainFrame)->m_astrWebProxyName.AddTail(m_WebProxyList.GetItemText(i,0));
((CMainFrame*)pMainFrame)->m_astrWebProxy.AddTail(m_WebProxyList.GetItemText(i,1));
}*/
//cur sel
/*2.3 POSITION pos = m_ProxyList.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nItem = m_ProxyList.GetNextSelectedItem(pos);
m_SelProxy = m_ProxyList.GetItemText(nItem,1);
}
else
m_SelProxy = "";*/
/* pos = m_WebProxyList.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nItem = m_WebProxyList.GetNextSelectedItem(pos);
m_SelWebProxy = m_WebProxyList.GetItemText(nItem,1);
}
else
m_SelWebProxy="";
*/
//proxy user, password, speed
/* ((CMainFrame*)pMainFrame)->m_astrProxyUser.RemoveAll();
pos = m_astrTempProxyUser.GetHeadPosition();
while(pos!=NULL)
{
((CMainFrame*)pMainFrame)->m_astrProxyUser.AddTail(m_astrTempProxyUser.GetAt(pos));
m_astrTempProxyUser.GetNext(pos);
}
((CMainFrame*)pMainFrame)->m_astrProxyPwd.RemoveAll();
pos = m_astrTempProxyPwd.GetHeadPosition();
while(pos!=NULL)
{
((CMainFrame*)pMainFrame)->m_astrProxyPwd.AddTail(m_astrTempProxyPwd.GetAt(pos));
m_astrTempProxyPwd.GetNext(pos);
}*/
/*2.3 ((CMainFrame*)pMainFrame)->m_aProxySpeed.RemoveAll();
pos = m_aTempProxySpeed.GetHeadPosition();
while(pos!=NULL)
{
((CMainFrame*)pMainFrame)->m_aProxySpeed.AddTail(m_aTempProxySpeed.GetAt(pos));
m_aTempProxySpeed.GetNext(pos);
}*/
/* ((CMainFrame*)pMainFrame)->m_aWebProxySpeed.RemoveAll();
pos = m_aTempWebProxySpeed.GetHeadPosition();
while(pos!=NULL)
{
((CMainFrame*)pMainFrame)->m_aWebProxySpeed.AddTail(m_aTempWebProxySpeed.GetAt(pos));
m_aTempWebProxySpeed.GetNext(pos);
}*/
delete m_tmpProxyCategory;
}catch(...)
{
}
CDialog::OnOK();
}
/*void CSetProxy::OnWebProxyNew()
{
// TODO: Add your control notification handler code here
CProxyInfo proxyinfo;
if(proxyinfo.DoModal() == IDOK)
{
if(proxyinfo.m_ProxyName.IsEmpty())
proxyinfo.m_ProxyName = proxyinfo.m_Proxy;
int i;
POSITION pos = m_WebProxyList.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
i = m_WebProxyList.GetNextSelectedItem(pos);
i++;
}
else
i = m_WebProxyList.GetItemCount();
m_WebProxyList.InsertItem(i, proxyinfo.m_ProxyName);
m_WebProxyList.SetItemText(i, 1, proxyinfo.m_Proxy);
CString str;
str.LoadString(IDS_SP_INVALID + proxyinfo.m_Speed);
m_WebProxyList.SetItemText(i, 2, str);
m_WebProxyList.SetFocus();
m_WebProxyList.EnsureVisible(i,FALSE);
// m_WebProxyList.EditLabel(i);
pos = m_aTempWebProxySpeed.FindIndex(i-1);
if(pos!=NULL)
m_aTempWebProxySpeed.InsertAfter(pos, proxyinfo.m_Speed);
else
m_aTempWebProxySpeed.AddTail(proxyinfo.m_Speed);
}
}
void CSetProxy::OnWebProxyDel()
{
// TODO: Add your control notification handler code here
POSITION pos = m_WebProxyList.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nItem = m_WebProxyList.GetNextSelectedItem(pos);
m_WebProxyList.DeleteItem(nItem);
if(nItem<m_WebProxyList.GetItemCount())
m_WebProxyList.SetItemState(nItem, LVIS_SELECTED,LVIS_SELECTED);
pos = m_aTempWebProxySpeed.FindIndex(nItem);
if(pos!=NULL)
m_aTempWebProxySpeed.RemoveAt(pos);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -