www.pudn.com > CraftFTP_gb.rar > AdvancePage.cpp


// AdvancePage.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "CraftFTP.h" 
#include "AdvancePage.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CAdvancePage property page 
 
IMPLEMENT_DYNCREATE(CAdvancePage, CPropertyPageExt) 
 
const DWORD CAdvancePage::m_nHelpIDs[] = 
{ 
	IDC_CHECK_PASV_MODE,				HIDC_CHECK_PASV_MODE, 
	IDC_CHECK_FOLDER_CATCH,				HIDC_CHECK_FOLDER_CATCH, 
	IDC_CHECK_SHOW_LOGIN_MESSAGE,		HIDC_CHECK_SHOW_LOGIN_MESSAGE, 
	IDC_CHECK_SHOW_DIRECTORY_MESSAGE,	HIDC_CHECK_SHOW_DIRECTORY_MESSAGE, 
	IDC_EDIT_CONTROL_SIZE,				HIDC_EDIT_CONTROL_SIZE, 
	IDC_SPIN_CONTROL_SIZE,				HIDC_SPIN_CONTROL_SIZE, 
	IDC_EDIT_SEND_SIZE,					HIDC_EDIT_SEND_SIZE, 
	IDC_SPIN_SEND_SIZE,					HIDC_SPIN_SEND_SIZE, 
	IDC_EDIT_RECEIVE_SIZE,				HIDC_EDIT_RECEIVE_SIZE, 
	IDC_SPIN_RECEIVE_SIZE,				HIDC_SPIN_RECEIVE_SIZE, 
	IDC_RADIO_ASCII_TEXT,				HIDC_RADIO_ASCII_TEXT, 
	IDC_RADIO_BINARY,					HIDC_RADIO_BINARY, 
	IDC_RADIO_AUTO_TRANMODE,			HIDC_RADIO_AUTO_TRANMODE, 
	IDC_EDIT_EXTENDSION,				HIDC_EDIT_EXTENDSION, 
	IDC_LIST_EXTENDSION,				HIDC_LIST_EXTENDSION, 
	IDC_BUTTON_ADD_EXTENDSION,			HIDC_BUTTON_ADD_EXTENDSION, 
	IDC_BUTTON_REMOVE_EXTENDSION,		HIDC_BUTTON_REMOVE_EXTENDSION, 
	IDC_CHECK_KEEP_CONNECTION,			HIDC_CHECK_KEEP_CONNECTION, 
	IDC_EDIT_IDLETIMES,					HIDC_EDIT_IDLETIMES, 
	IDC_SPIN_IDLETIMES,					HIDC_SPIN_IDLETIMES, 
	IDC_EDIT_IDLECOMMAND,				HIDC_EDIT_IDLECOMMAND, 
	IDC_LIST_IDLECOMMAND,				HIDC_LIST_IDLECOMMAND, 
	IDC_BUTTON_ADD_IDLECMD,				HIDC_BUTTON_ADD_IDLECMD, 
	IDC_BUTTON_REMOVE_IDLECMD,			HIDC_BUTTON_REMOVE_IDLECMD, 
	0 , 0 
}; 
 
CAdvancePage::CAdvancePage() : CPropertyPageExt(CAdvancePage::IDD) 
{ 
	//{{AFX_DATA_INIT(CAdvancePage) 
	m_bFolderCatch		= TRUE; 
	m_bKeepConnection	= TRUE; 
	m_bPasvMode			= TRUE; 
	m_bShowLoginMsg		= TRUE; 
	m_bShowDirMsg		= TRUE; 
	m_nIdleCmd			= 30; 
	m_nControlSize		= 4; 
	m_nRecvSize			= 4; 
	m_nSendSize			= 4; 
	//}}AFX_DATA_INIT 
 
	m_nTransferType		= 1;	// Auto 
	m_szSection			= _T("Advance"); 
	m_szIdleCmdList		= _T("Reload,PWD,NOOP,REST 0,TYPE A,TYPE I"); 
	m_szExtendsionList	= _T("TXT,H,C,CPP,JAVA,JSP,VBS,BAS,BAT,HTM,HTML,PL,CGI,MAK,SHTML,DHTML,CFM,PHP,ASP,CSS"); 
} 
 
CAdvancePage::~CAdvancePage() 
{ 
} 
 
void CAdvancePage::DoDataExchange(CDataExchange* pDX) 
{ 
	CPropertyPageExt::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CAdvancePage) 
	DDX_Control(pDX, IDC_LIST_EXTENDSION, m_listAsciiExtendsion); 
	DDX_Control(pDX, IDC_LIST_IDLECOMMAND, m_listFtpCmdBox); 
	DDX_Check(pDX, IDC_CHECK_FOLDER_CATCH, m_bFolderCatch); 
	DDX_Check(pDX, IDC_CHECK_KEEP_CONNECTION, m_bKeepConnection); 
	DDX_Check(pDX, IDC_CHECK_PASV_MODE, m_bPasvMode); 
	DDX_Check(pDX, IDC_CHECK_SHOW_LOGIN_MESSAGE, m_bShowLoginMsg); 
	DDX_Check(pDX, IDC_CHECK_SHOW_DIRECTORY_MESSAGE, m_bShowDirMsg); 
	DDX_Text(pDX, IDC_EDIT_IDLETIMES, m_nIdleCmd); 
	DDV_MinMaxUInt(pDX, m_nIdleCmd, 30, 90); 
	DDX_Text(pDX, IDC_EDIT_CONTROL_SIZE, m_nControlSize); 
	DDV_MinMaxUInt(pDX, m_nControlSize, 1, 8); 
	DDX_Text(pDX, IDC_EDIT_RECEIVE_SIZE, m_nRecvSize); 
	DDV_MinMaxUInt(pDX, m_nRecvSize, 1, 8); 
	DDX_Text(pDX, IDC_EDIT_SEND_SIZE, m_nSendSize); 
	DDV_MinMaxUInt(pDX, m_nSendSize, 1, 8); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CAdvancePage, CPropertyPageExt) 
	//{{AFX_MSG_MAP(CAdvancePage) 
	ON_BN_CLICKED(IDC_RADIO_AUTO_TRANMODE, OnRadioAutoTranmode) 
	ON_BN_CLICKED(IDC_RADIO_ASCII_TEXT, OnRadioAsciiText) 
	ON_BN_CLICKED(IDC_RADIO_BINARY, OnRadioBinary) 
	ON_BN_CLICKED(IDC_CHECK_KEEP_CONNECTION, OnCheckKeepConnection) 
	ON_NOTIFY(NM_CLICK, IDC_LIST_IDLECOMMAND, OnClickListIdlecommand) 
	ON_NOTIFY(NM_KILLFOCUS, IDC_LIST_IDLECOMMAND, OnKillfocusListIdlecommand) 
	ON_NOTIFY(LVN_INSERTITEM, IDC_LIST_EXTENDSION, OnInsertitemListExtendsion) 
	ON_NOTIFY(LVN_INSERTITEM, IDC_LIST_IDLECOMMAND, OnInsertitemListIdlecommand) 
	ON_NOTIFY(NM_KILLFOCUS, IDC_LIST_EXTENDSION, OnKillfocusListExtendsion) 
	ON_NOTIFY(NM_CLICK, IDC_LIST_EXTENDSION, OnClickListExtendsion) 
	ON_BN_CLICKED(IDC_BUTTON_ADD_EXTENDSION, OnButtonAddExtendsion) 
	ON_BN_CLICKED(IDC_BUTTON_ADD_IDLECMD, OnButtonAddIdlecmd) 
	ON_EN_CHANGE(IDC_EDIT_EXTENDSION, OnChangeEditExtendsion) 
	ON_EN_CHANGE(IDC_EDIT_IDLECOMMAND, OnChangeEditIdlecommand) 
	ON_BN_CLICKED(IDC_BUTTON_REMOVE_EXTENDSION, OnButtonRemoveExtendsion) 
	ON_BN_CLICKED(IDC_BUTTON_REMOVE_IDLECMD, OnButtonRemoveIdlecmd) 
	ON_BN_KILLFOCUS(IDC_BUTTON_REMOVE_IDLECMD, OnRemoveIdlecmdKillFocus) 
	ON_BN_KILLFOCUS(IDC_BUTTON_REMOVE_EXTENDSION, OnRemoveExtendsionKillFocus) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CAdvancePage message handlers 
BOOL CAdvancePage::OnKillActive()  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	 
	return CPropertyPageExt::OnKillActive(); 
} 
 
BOOL CAdvancePage::OnInitDialog()  
{ 
	CPropertyPageExt::OnInitDialog(); 
	 
	// TODO: Add extra initialization here 
	CWaitCursor w; 
 
	m_listFtpCmdBox.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT); 
	m_listAsciiExtendsion.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT); 
 
	CRect rect; 
	m_listFtpCmdBox.GetClientRect(&rect); 
 
	LV_COLUMN lvc; 
	lvc.mask		= LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM ; 
	lvc.iSubItem	= 0; 
	lvc.pszText		= _T(""); 
	lvc.cx			= rect.Width(); 
	lvc.fmt			= LVCFMT_LEFT; 
	m_listFtpCmdBox.InsertColumn(0,&lvc); 
	m_listFtpCmdBox.ModifyStyle(WS_HSCROLL, 0); 
 
	m_listAsciiExtendsion.GetClientRect(&rect); 
	lvc.cx			= rect.Width(); 
	m_listAsciiExtendsion.InsertColumn(0,&lvc); 
 
	//文件扩展名 
	if(!m_szExtendsionList.IsEmpty()) 
	{ 
		int nPos = m_szExtendsionList.Find(","); 
		if(nPos!=-1) 
		{ 
			while(nPos!=-1) 
			{ 
				CString szCmd = m_szExtendsionList.Left(nPos); 
				m_listAsciiExtendsion.InsertItem(m_listAsciiExtendsion.GetItemCount(), szCmd); 
				m_szExtendsionList.Delete(0, nPos+1); 
				nPos = m_szExtendsionList.Find(","); 
			} 
			CString szCmd = m_szExtendsionList; 
			m_listAsciiExtendsion.InsertItem(m_listAsciiExtendsion.GetItemCount(), szCmd); 
		} 
		else 
			m_listAsciiExtendsion.InsertItem(0, m_szExtendsionList); 
	} 
 
	//空闲命令 
	if(!m_szIdleCmdList.IsEmpty()) 
	{ 
		int nPos = m_szIdleCmdList.Find(","); 
		if(nPos!=-1) 
		{ 
			while(nPos!=-1) 
			{ 
				CString szCmd = m_szIdleCmdList.Left(nPos); 
				m_listFtpCmdBox.InsertItem(m_listFtpCmdBox.GetItemCount(), szCmd); 
				m_szIdleCmdList.Delete(0, nPos+1); 
				nPos = m_szIdleCmdList.Find(","); 
			} 
			CString szCmd = m_szIdleCmdList; 
			m_listFtpCmdBox.InsertItem(m_listFtpCmdBox.GetItemCount(), szCmd); 
		} 
		else 
			m_listFtpCmdBox.InsertItem(0, m_szIdleCmdList); 
	} 
 
	//传输类型 
	if( m_nTransferType == 1 ) // Auto 
		CheckRadioButton(IDC_RADIO_AUTO_TRANMODE,IDC_RADIO_BINARY,IDC_RADIO_AUTO_TRANMODE); 
	else 
	if( m_nTransferType == 2 ) // Ascll 
		CheckRadioButton(IDC_RADIO_AUTO_TRANMODE,IDC_RADIO_BINARY,IDC_RADIO_ASCII_TEXT); 
	else 
	if( m_nTransferType == 3 ) // Binaru 
		CheckRadioButton(IDC_RADIO_AUTO_TRANMODE,IDC_RADIO_BINARY,IDC_RADIO_BINARY); 
 
	//微调控件 
	CSpinButtonCtrl * pSpinCtrl1 = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_CONTROL_SIZE); 
	if(pSpinCtrl1) 
	{ 
		pSpinCtrl1->SetBuddy(GetDlgItem(IDC_EDIT_CONTROL_SIZE)); 
		pSpinCtrl1->SetRange(1, 8); 
	} 
 
	CSpinButtonCtrl * pSpinCtrl2 = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_SEND_SIZE); 
	if(pSpinCtrl2) 
	{ 
		pSpinCtrl2->SetBuddy(GetDlgItem(IDC_EDIT_SEND_SIZE)); 
		pSpinCtrl2->SetRange(1, 8); 
	} 
 
	CSpinButtonCtrl * pSpinCtrl3 = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_RECEIVE_SIZE); 
	if(pSpinCtrl3) 
	{ 
		pSpinCtrl3->SetBuddy(GetDlgItem(IDC_EDIT_RECEIVE_SIZE)); 
		pSpinCtrl3->SetRange(1, 8); 
	} 
 
	CSpinButtonCtrl * pSpinCtrl4 = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_IDLETIMES); 
	if(pSpinCtrl4) 
	{ 
		pSpinCtrl4->SetBuddy(GetDlgItem(IDC_EDIT_IDLETIMES)); 
		pSpinCtrl4->SetRange(30, 90); 
	} 
 
	m_oGroupFrame.SetFrame(this, IDC_GROUPFRAME, IDC_CHECK_KEEP_CONNECTION); 
	if(m_bKeepConnection) 
		m_oGroupFrame.Enable(TRUE); 
	else 
		m_oGroupFrame.Enable(FALSE); 
 
	CWnd * pBtn1 = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
	if(pBtn1) 
		pBtn1->EnableWindow(FALSE); 
	CWnd * pBtn2 = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
	if(pBtn2) 
		pBtn2->EnableWindow(FALSE); 
	CWnd * pBtn3 = GetDlgItem(IDC_BUTTON_ADD_IDLECMD); 
	if(pBtn3) 
		pBtn3->EnableWindow(FALSE); 
 
	UpdateData(FALSE); 
 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CAdvancePage::OnRadioAutoTranmode()  
{ 
	// TODO: Add your control notification handler code here 
	m_nTransferType = 1; 
} 
 
void CAdvancePage::OnRadioAsciiText()  
{ 
	// TODO: Add your control notification handler code here 
	m_nTransferType = 2; 
} 
 
void CAdvancePage::OnRadioBinary()  
{ 
	// TODO: Add your control notification handler code here 
	m_nTransferType = 3; 
} 
 
void CAdvancePage::LoadValue() 
{ 
	CWinApp * theApp = AfxGetApp(); 
 
	m_bPasvMode			= theApp->GetProfileInt(m_szSection, _T("PasvMode"), TRUE); 
	m_bShowLoginMsg		= theApp->GetProfileInt(m_szSection, _T("ShowLoginMsg"), TRUE); 
	m_bShowDirMsg		= theApp->GetProfileInt(m_szSection, _T("ShowDirMsg"), TRUE); 
	m_bFolderCatch		= theApp->GetProfileInt(m_szSection, _T("FolderCatch"), TRUE); 
	m_nTransferType		= theApp->GetProfileInt(m_szSection, _T("TransferType"), 1); 
	m_nControlSize		= theApp->GetProfileInt(m_szSection, _T("ControlSize"), 4); 
	m_nSendSize			= theApp->GetProfileInt(m_szSection, _T("SendSize"), 4); 
	m_nRecvSize			= theApp->GetProfileInt(m_szSection, _T("ReceiveSize"), 4); 
	m_bKeepConnection	= theApp->GetProfileInt(m_szSection, _T("KeepConnection"), TRUE); 
	m_nIdleCmd			= theApp->GetProfileInt(m_szSection, _T("IdleCommand"), 30); 
	m_szIdleCmdList		= theApp->GetProfileString(m_szSection, _T("IdleCmdList"), _T("Reload,PWD,NOOP,REST 0,TYPE A,TYPE I")); 
	m_szExtendsionList	= theApp->GetProfileString(m_szSection, _T("ExtendsionList"), _T("LOG,TXT,H,C,CPP,JAVA,JSP,VBS,BAS,BAT,HTM,HTML,PL,CGI,MAK,SHTML,DHTML,CFM,PHP,ASP,CSS")); 
} 
 
void CAdvancePage::SaveValue() 
{ 
	CWinApp * theApp = AfxGetApp(); 
 
	theApp->WriteProfileInt(m_szSection, _T("PasvMode"), m_bPasvMode); 
	theApp->WriteProfileInt(m_szSection, _T("ShowLoginMsg"), m_bShowLoginMsg); 
	theApp->WriteProfileInt(m_szSection, _T("ShowDirMsg"), m_bShowDirMsg); 
	theApp->WriteProfileInt(m_szSection, _T("FolderCatch"), m_bFolderCatch); 
	theApp->WriteProfileInt(m_szSection, _T("TransferType"), m_nTransferType); 
	theApp->WriteProfileInt(m_szSection, _T("ControlSize"), m_nControlSize); 
	theApp->WriteProfileInt(m_szSection, _T("SendSize"), m_nSendSize); 
	theApp->WriteProfileInt(m_szSection, _T("ReceiveSize"), m_nRecvSize); 
	theApp->WriteProfileInt(m_szSection, _T("KeepConnection"), m_bKeepConnection); 
	theApp->WriteProfileInt(m_szSection, _T("IdleCommand"), m_nIdleCmd); 
	theApp->WriteProfileString(m_szSection, _T("IdleCmdList"), m_szIdleCmdList); 
	theApp->WriteProfileString(m_szSection, _T("ExtendsionList"), m_szExtendsionList); 
} 
 
void CAdvancePage::OnCheckKeepConnection()  
{ 
	// TODO: Add your control notification handler code here 
	UpdateData(); 
 
	if(m_bKeepConnection) 
	{ 
		m_oGroupFrame.Enable(TRUE); 
		OnChangeEditIdlecommand(); 
 
		CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
		if(pBtn) 
			pBtn->EnableWindow(FALSE); 
	} 
	else 
		m_oGroupFrame.Enable(FALSE); 
} 
 
void CAdvancePage::OnOK()  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	m_szExtendsionList = _T(""); 
	for(int i=0; i0) 
		pBtn->EnableWindow(TRUE); 
	else 
		pBtn->EnableWindow(FALSE); 
	*pResult = 0; 
} 
 
void CAdvancePage::OnKillfocusListIdlecommand(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	// TODO: Add your control notification handler code here 
	CWnd * pFocusWnd = CWnd::GetFocus(); 
	CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
	if(pBtn && pBtn != pFocusWnd) 
		pBtn->EnableWindow(FALSE); 
	 
	*pResult = 0; 
} 
 
void CAdvancePage::OnInsertitemListExtendsion(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; 
	// TODO: Add your control notification handler code here 
 
	m_listAsciiExtendsion.ShowScrollBar(SB_HORZ, FALSE); 
	m_listAsciiExtendsion.ModifyStyle(WS_HSCROLL, 0, SWP_DRAWFRAME); 
	 
	*pResult = 0; 
} 
 
void CAdvancePage::OnInsertitemListIdlecommand(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; 
	// TODO: Add your control notification handler code here 
 
	m_listFtpCmdBox.ShowScrollBar(SB_HORZ, FALSE); 
	m_listFtpCmdBox.ModifyStyle(WS_HSCROLL, 0, SWP_DRAWFRAME); 
	 
	*pResult = 0; 
} 
 
void CAdvancePage::OnKillfocusListExtendsion(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	// TODO: Add your control notification handler code here 
	CWnd * pFocusWnd = CWnd::GetFocus(); 
	CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_EXTENDSION); 
	if(pBtn && pBtn != pFocusWnd) 
		pBtn->EnableWindow(FALSE); 
	*pResult = 0; 
} 
 
void CAdvancePage::OnClickListExtendsion(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	// TODO: Add your control notification handler code here 
	CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_EXTENDSION); 
	if(m_listAsciiExtendsion.GetSelectedCount()>0) 
		pBtn->EnableWindow(TRUE); 
	else 
		pBtn->EnableWindow(FALSE); 
	 
	*pResult = 0; 
} 
 
void CAdvancePage::OnButtonAddExtendsion()  
{ 
	// TODO: Add your control notification handler code here 
	CString szText; 
	GetDlgItemText(IDC_EDIT_EXTENDSION, szText); 
	if(!szText.IsEmpty()) 
	{ 
		m_listAsciiExtendsion.InsertItem(m_listAsciiExtendsion.GetItemCount(), szText); 
		SetDlgItemText(IDC_EDIT_EXTENDSION, _T("")); 
	} 
} 
 
void CAdvancePage::OnButtonAddIdlecmd()  
{ 
	// TODO: Add your control notification handler code here 
	CString szText; 
	GetDlgItemText(IDC_EDIT_IDLECOMMAND, szText); 
	if(!szText.IsEmpty()) 
	{ 
		m_listFtpCmdBox.InsertItem(m_listFtpCmdBox.GetItemCount(), szText); 
		SetDlgItemText(IDC_EDIT_IDLECOMMAND, _T("")); 
	} 
} 
 
void CAdvancePage::OnChangeEditExtendsion()  
{ 
	// TODO: If this is a RICHEDIT control, the control will not 
	// send this notification unless you override the CPropertyPageExt::OnInitDialog() 
	// function and call CRichEditCtrl().SetEventMask() 
	// with the ENM_CHANGE flag ORed into the mask. 
	 
	// TODO: Add your control notification handler code here 
	CWnd * pCtrl = GetDlgItem(IDC_BUTTON_ADD_EXTENDSION); 
	CString szText; 
	GetDlgItemText(IDC_EDIT_EXTENDSION, szText); 
	if(szText.IsEmpty()) 
		pCtrl->EnableWindow(FALSE); 
	else 
		pCtrl->EnableWindow(TRUE); 
} 
 
void CAdvancePage::OnChangeEditIdlecommand()  
{ 
	// TODO: If this is a RICHEDIT control, the control will not 
	// send this notification unless you override the CPropertyPageExt::OnInitDialog() 
	// function and call CRichEditCtrl().SetEventMask() 
	// with the ENM_CHANGE flag ORed into the mask. 
	 
	// TODO: Add your control notification handler code here 
	CWnd * pCtrl = GetDlgItem(IDC_BUTTON_ADD_IDLECMD); 
	CString szText; 
	GetDlgItemText(IDC_EDIT_IDLECOMMAND, szText); 
	if(szText.IsEmpty()) 
		pCtrl->EnableWindow(FALSE); 
	else 
		pCtrl->EnableWindow(TRUE);	 
} 
 
void CAdvancePage::OnButtonRemoveExtendsion()  
{ 
	// TODO: Add your control notification handler code here 
	POSITION pos = m_listAsciiExtendsion.GetFirstSelectedItemPosition(); 
	if(pos) 
	{ 
		int nItem = m_listAsciiExtendsion.GetNextSelectedItem(pos); 
		m_listAsciiExtendsion.DeleteItem(nItem); 
 
		CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_EXTENDSION); 
		if(pBtn) 
			pBtn->EnableWindow(FALSE); 
	} 
} 
 
void CAdvancePage::OnButtonRemoveIdlecmd()  
{ 
	// TODO: Add your control notification handler code here 
	POSITION pos = m_listFtpCmdBox.GetFirstSelectedItemPosition(); 
	if(pos) 
	{ 
		int nItem = m_listFtpCmdBox.GetNextSelectedItem(pos); 
		m_listFtpCmdBox.DeleteItem(nItem); 
 
		CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
		if(pBtn) 
			pBtn->EnableWindow(FALSE); 
	} 
} 
 
void CAdvancePage::OnRemoveIdlecmdKillFocus() 
{ 
	CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_IDLECMD); 
	if(pBtn) 
		pBtn->EnableWindow(FALSE); 
} 
 
void CAdvancePage::OnRemoveExtendsionKillFocus() 
{ 
	CWnd * pBtn = GetDlgItem(IDC_BUTTON_REMOVE_EXTENDSION); 
	if(pBtn) 
		pBtn->EnableWindow(FALSE); 
}