// C_TDSet.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "C_TDSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CC_TDSet dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_C_TDSet_Modify1.h"

CC_TDSet::CC_TDSet(CWnd* pParent /*=NULL*/)
	: CDialog(CC_TDSet::IDD, pParent)
	, m_lOftenUse(0)
{
	//{{AFX_DATA_INIT(CC_TDSet)
	// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT

	m_bInit = false;
	m_bRefresh = false;
	m_lAbility = 0;
	m_lTDType = 0;
	m_lStatus = 0;
}


void CC_TDSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CC_TDSet)
	DDX_Control(pDX, IDC_TDSET_LIST, m_wndList);
	//}}AFX_DATA_MAP
	DDX_Control(pDX, IDC_C_TDSET_S1, m_S_S1);
	DDX_CBIndex(pDX, IDC_TDSET_ABILITY, m_lAbility);
	DDX_CBIndex(pDX, IDC_TDSET_TDTYPE, m_lTDType);
	DDX_CBIndex(pDX, IDC_TDSET_STATUS, m_lStatus);
	//  DDX_CBString(pDX, IDC_TDSET_OFTENUSE, m_lOftenUse);
	DDX_CBIndex(pDX, IDC_TDSET_OFTENUSE, m_lOftenUse);
}


BEGIN_MESSAGE_MAP(CC_TDSet, CDialog)
	//{{AFX_MSG_MAP(CC_TDSet)
	ON_WM_SIZE()
	ON_NOTIFY(NM_DBLCLK, IDC_TDSET_LIST, OnDblclkYwyList)
	ON_NOTIFY(NM_RCLICK, IDC_TDSET_LIST, OnRclickYwyList)
	ON_NOTIFY(LVN_KEYDOWN, IDC_TDSET_LIST, OnKeydownYwyList)
	//}}AFX_MSG_MAP

	ON_COMMAND( MENU_PARTNER_ADD    , On_User_Add)
	ON_COMMAND( MENU_PARTNER_MODIFY , On_User_Modify)
	ON_COMMAND( MENU_PARTNER_DEL    , On_User_Del)
	ON_COMMAND( MENU_PARTNER_COPY   , On_User_Copy)
	ON_COMMAND( MENU_PARTNER_REFRESH, On_User_Refresh)

	ON_BN_CLICKED(IDC_C_TDSET_QUERY, &CC_TDSet::OnBnClickedCTdsetQuery)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CC_TDSet message handlers

BOOL CC_TDSet::RefreshInfo()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE) )
	{
		return false;
	}

	REQ_GetTD2 * pTD = new REQ_GetTD2;

	memset(pTD , 0 , sizeof(REQ_GetTD2));

	pTD->lStatus = 0;
	pTD->lAbility = 0;
	pTD->lTDType = 0;

	m_pMainFrame->SendFrame(SMSFUNC_GETTD2,(BYTE*)pTD,sizeof(REQ_GetTD2));
	return true;
}

void CC_TDSet::Close()
{
	Close_Partner();
}

BOOL CC_TDSet::ReShow(BOOL bRefresh)
{
	ShowWindow( SW_SHOW );
	if ( bRefresh || !m_bRefresh )
	{
		RefreshInfo();
	}
	return true;
}

BOOL CC_TDSet::ReHide()
{
	ShowWindow( SW_HIDE );
	return true;
}

void CC_TDSet::SetLockItem(long lItem, BOOL bLock)
{
	if ( bLock )
		m_wndList.SetIconIndex( lItem , 1 );
	else
		m_wndList.SetIconIndex( lItem , 0 );
}

long CC_TDSet::GetCurrentSelected()
{
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	if ( pos )
	{
		return m_wndList.GetNextSelectedItem(pos);
	}
	return -1;
}

BOOL CC_TDSet::isLockItem(long lItem, BOOL bShowWarning)
{
	BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
	if ( b && bShowWarning )
	{
		MessageBox( _T("��¼����������ȴ����������غ��ٲ���!") , _T("������") , MB_ICONINFORMATION );
	}
	return b;
}

BOOL CC_TDSet::ShowInList(ANS_GetTD2Data * pData,long lItem2,POSITION pos)
{
	CString str;
	long lItem =lItem2;
	if ( lItem<0 )  //����
	{
		lItem = m_wndList.GetItemCount();
		str.Format(_T("%d") , lItem+1 );
		m_wndList.InsertItem( lItem , str , 0 );
		m_wndList.SetItemData( lItem , (DWORD)pos );    //��Pos
	}

	//m_wndList.SetHeadings(_T("���,50;ͨ������,90;�����,80;����,50;Ĭ��,50;����,50;��Ӫ��,60;ͨ����,60;SendRet,50;���ն�����,100;ʧ����,80;���¶�����,100;ʧ����,80;��ע,200;"));
	long lTemp11=1;
	m_wndList.SetItemText( lItem , lTemp11++ , pData->szName ) ;
	m_wndList.SetItemText( lItem , lTemp11++ , pData->szAccessPort ) ;
	m_wndList.SetItemText(lItem, lTemp11++, pData->szLoginName);
	str = _T("");
	if ( pData->lStatus == 1 )
		str = _T("����");
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;
	str = _T("");
	if ( pData->lDefaultTD == 1 )
		str = _T("Ĭ��");
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	switch(pData->lAbility)
	{
	case 0:
		str = _T(" ����");
		break;
	case 1:
		str = _T(" ����");
		break;
	default:
		str = _T("");
		break;
	}
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	switch(pData->lTDType)
	{
	case 0:
		str = _T(" �ƶ�");
		break;
	case 1:
		str = _T(" ��ͨ");
		break;
	case 2:
		str = _T(" С��ͨ");
		break;
	case 3:
		str = _T(" ����");
		break;
	case 4:
		str = _T(" ����");
		break;
	default:
		str = _T("");
		break;
	}
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	str.Format(_T("��%d����"),pData->lLimits+1);
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	str.Format(_T("��%dͨ��"),pData->lTDNum);
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	str.Format(_T(" %d"),pData->lSendRet);
	m_wndList.SetItemText( lItem , lTemp11++ , str ) ;

	//��������
	str.Format(_T(" %d"), pData->lBFPriority);
	m_wndList.SetItemText(lItem, lTemp11++, str);

	//ÿ�ն�����
	str.Format( _T("%d") , pData->Day_Send - pData->Day_ReportFail );
	m_wndList.SetItemText(lItem,lTemp11++,str);

	str = _T("0.00%");
	if (pData->Day_ReportFail>0 && pData->Day_Send>0 )
	{
		str.Format( _T("%.2f%%") , (float)pData->Day_ReportFail/(float)pData->Day_Send );
		//if ( pData->Day_ReportFail>=pData->Day_Send )
		//	str = _T("100.00%");
	}
	m_wndList.SetItemText(lItem,lTemp11++,str);

	str.Format( _T("%d") , pData->Mon_Send - pData->Mon_ReportFail );
	m_wndList.SetItemText(lItem,lTemp11++,str);

	str = _T("0.00%");
	if (pData->Mon_ReportFail>0 && pData->Mon_Send>0 )
	{
		str.Format( _T("%.2f%%") , (float)pData->Mon_ReportFail/(float)pData->Mon_Send );
		//if ( pData->Mon_ReportFail>=pData->Mon_Send )
		//	str = _T("100.00%");
	}
	m_wndList.SetItemText(lItem,lTemp11++,str);

	m_wndList.SetItemText(lItem,lTemp11++,pData->szBZ);

	return true;
}
BOOL CC_TDSet::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
	CString str;
	//ȡ����Ա��Ϣ
	if (pHead->lFuncType == SMSFUNC_GETTD2)
	{
		m_bRefresh = true;  //�Ѿ�ˢ�¹�
		ANS_GetTD2 * pPartner = (ANS_GetTD2 *)pFrame;
		ANS_GetTD2Data * pData = (ANS_GetTD2Data *)(pFrame+sizeof(ANS_GetTD2));


		m_wndList.DeleteAllItems(); //ɾ��ԭ�е�����
		this->Close_Partner();              //�ر�ԭ����
		long lSubmitCount=0;
		long lSendCount=0;
		long lReportSucessCount=0;
		long lReportFailCount=0;
		long lMonSubmitCount=0;
		long lMonSendCount=0;
		long lMonReportSucessCount=0;
		long lMonReportFailCount=0;
		for ( int i=0;i<pPartner->lCount;i++ )
		{
			ANS_GetTD2Data * pNewData = new ANS_GetTD2Data;
			*pNewData = *pData;
			POSITION pos = m_TD.AddTail(pNewData);

			lSubmitCount += pData->Day_Submit;
			lSendCount += pData->Day_Send;
			lReportSucessCount += pData->Day_ReportSucess;
			lReportFailCount += pData->Day_ReportFail;

			lMonSubmitCount += pData->Mon_Submit;
			lMonSendCount += pData->Mon_Send;
			lMonReportSucessCount += pData->Mon_ReportSucess;
			lMonReportFailCount += pData->Mon_ReportFail;

			ShowInList(pNewData,-1,pos);
			pData ++;
		}
		if (pPartner->lCount>0 )
		{
			long lItem = m_wndList.GetItemCount();
			m_wndList.InsertItem(lItem,_T(""),0);
			m_wndList.SetItemData(lItem,-1);
			lItem++;
			m_wndList.InsertItem(lItem,_T("�ϼ�"),0);
			m_wndList.SetItemData(lItem,-1);
			long lTemp11=10;
			str.Format( _T("%d") , lSendCount - lReportFailCount );
			m_wndList.SetItemText(lItem,lTemp11++,str);

			str = _T("0.00%");
			if (lReportFailCount>0 && lSendCount>0 )
			{
				str.Format( _T("%.2f%%") , (float)lReportFailCount/(float)lSendCount );
				//if ( lReportFailCount>=lSendCount )
				//	str = _T("100.00%");
			}
			m_wndList.SetItemText(lItem,lTemp11++,str);

			str.Format( _T("%d") , lMonSendCount - lMonReportFailCount );
			m_wndList.SetItemText(lItem,lTemp11++,str);

			str = _T("0.00%");
			if (lMonReportFailCount>0 && lMonSendCount>0 )
			{
				str.Format( _T("%.2f%%") , (float)lMonReportFailCount/(float)lMonSendCount );
				//if ( lMonReportFailCount>=pData->lMonSendCount )
				//	str = _T("100.00%");
			}
			m_wndList.SetItemText(lItem,lTemp11++,str);
		}
		return true;
	}

	//�޸Ĺ���Ա��Ϣ
	if (pHead->lFuncType == SMSFUNC_TD2_MODIFY)
	{
		ANS_TD2_Modify * pModify = (ANS_TD2_Modify *)pFrame;
		ANS_GetTD2Data * pData = (ANS_GetTD2Data *)(pFrame+sizeof(ANS_TD2_Modify));
		SetLockItem( pModify->lItem , false );  //����
		if ( pModify->lCount == 1 )  //����1ʱ��ʾ�޸ijɹ�
		{
			POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
			ANS_GetTD2Data * pData2 = m_TD.GetNext( pos );
			if ( pData2 )
			{
				*pData2 = *pData;    //ȡ���µ�����

				ShowInList(pData2,pModify->lItem,pos);
			}
		}
		return true;
	}
	//���ӹ���Ա
	if (pHead->lFuncType == SMSFUNC_TD2_ADD)
	{
		ANS_TD2_Add * pAdd = (ANS_TD2_Add *)pFrame;
		ANS_GetTD2Data * pData = (ANS_GetTD2Data *)(pFrame+sizeof(ANS_TD2_Add));
		if ( pAdd->lCount == 1 )  //����1ʱ��ʾ�޸ijɹ�
		{
			ANS_GetTD2Data * pData2 = new ANS_GetTD2Data;
			*pData2 = *pData;
			POSITION pos = m_TD.AddTail( pData2 );

			ShowInList(pData2,-1,pos);
			//������ص��û�ID����������ˢ��
			if ( pData->lTDID <= 0 )
			{
				RefreshInfo();
			}
		}
		return true;
	}
	//ɾ������Ա
	if (pHead->lFuncType == SMSFUNC_TD2_DEL)
	{
		ANS_TD2_Del     * pDel     = (ANS_TD2_Del     *)pFrame;
		ANS_TD2_DelData * pDelData = (ANS_TD2_DelData *)(pFrame+sizeof(ANS_TD2_Del));
		POSITION pos,pos2;
		ANS_GetTD2Data  * pTD2Data;
		for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
		{
			if ( pDelData[i].lTDID )  //ɾ���ɹ�
			{
				pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
				pos2 = pos;
				pTD2Data = m_TD.GetNext( pos );
				if ( pTD2Data->lTDID == pDelData[i].lTDID )  //ID��ͬ�IJſ�ɾ��
				{
					delete pTD2Data;       //��ɾ������
					m_TD.RemoveAt(pos2);   //���б���ɾ��
					m_wndList.DeleteItem(pDelData[i].lItem); //��ListCtrl��ɾ��
				}
			}
		}
		return true;
	}
	return false;
}

void CC_TDSet::ShowRMenu()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE,false))  //û�в鿴Ȩ��
		return ;

	CMenu menu;
	menu.CreatePopupMenu();
	BOOL bLock = false;
	long lItem = this->GetCurrentSelected();
	if ( lItem >= 0 )
		bLock = isLockItem( lItem , false );   //ȡ���Ƿ���������

	//����
	if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD,false) )
	{
		menu.AppendMenu(MF_STRING     , MENU_PARTNER_ADD, _T(" ������ͨ�� ") );
	}
	else
	{
		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_PARTNER_ADD , _T(" ������ͨ�� ") );
	}
	//�޸�
	if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_MODIFY,false) && lItem >=0 && !bLock)
	{
		menu.AppendMenu(MF_STRING     , MENU_PARTNER_MODIFY, _T(" �� �� ") );
	}
	else
	{
		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_PARTNER_MODIFY , _T(" �� �� ") );
	}
	//ɾ��
	if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_DEL,false) && lItem >=0 && !bLock )
	{
		menu.AppendMenu(MF_STRING     , MENU_PARTNER_DEL, _T(" ɾ �� ") );
	}
	else
	{
		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_PARTNER_DEL , _T(" ɾ �� ") );
	}

	menu.AppendMenu(MF_SEPARATOR );
	menu.AppendMenu(MF_STRING     , MENU_PARTNER_COPY, _T(" �������� ") );
	menu.AppendMenu(MF_SEPARATOR );
	//ˢ��
	menu.AppendMenu(MF_STRING     , MENU_PARTNER_REFRESH, _T(" ˢ �� ") );

	//��ʾ�˵�
	POINT pt ;
	::GetCursorPos( &pt );
	//this->ClientToScreen( &pt);
	menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
	menu.DestroyMenu();
}

BOOL CC_TDSet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//ȡ�ù��ò���
	//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
	this->GetParent()->GetParentFrame();
	m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
	m_pSocket    = &m_pMainFrame->m_Socket;

	//��ʼ��List
	m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MANAGER) );
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
	m_wndList.SubClassWindow2();
	m_wndList.SetHeadings(_T("���,50;ͨ������,100;�����,150;�����˺�,120;����,60;Ĭ��,60;����,60;��Ӫ��,90;���к�,80;ͨ����,80;SendRet,80;��������,80;���ն�����,100;ʧ����,80;���¶�����,100;ʧ����,80;��ע,200;"));
	m_wndList.SetGridLines(true);
	m_wndList.SetImageList(&m_Image,LVSIL_SMALL);

	m_bInit = true;	

	m_lAbility = 0;
	m_lTDType = 0;
	m_lStatus = 0;
	m_lOftenUse = 2;  //Ĭ�ϲ�ѯ���õ�
	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CC_TDSet::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	if ( m_bInit )
	{
		CRect rect;
		m_S_S1.GetWindowRect(&rect);
		m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
	}	
}

void CC_TDSet::OnDblclkYwyList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;

	On_User_Modify();
}

void CC_TDSet::OnRclickYwyList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;

	ShowRMenu();
}

void CC_TDSet::OnKeydownYwyList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

void CC_TDSet::On_User_Add()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD) )
	{
		return ;
	}
	ANS_GetTD2Data TD2Data={0};
	TD2Data.lStatus = 1; //Ĭ��������
	TD2Data.lLimits=1;  //Ĭ�ϵڶ�����
	TD2Data.lOftenUse = 1;//�¼ӵ�Ϊ����ͨ��
	TD2Data.lBFPriority = 100;  //Ĭ�ϲ�������Ϊ���
	DLG_C_TDSet_Modify dlg(this);
	dlg.SetParam( TD2Data);
	if ( dlg.DoModal() == IDOK )
	{
		long lSize = sizeof(REQ_TD2_Add)+sizeof(ANS_GetTD2Data);
		BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
		REQ_TD2_Add * pAdd = (REQ_TD2_Add *)pAddData;   //ͷ
		ANS_GetTD2Data * pTD2Data = (ANS_GetTD2Data *)(pAddData+sizeof(REQ_TD2_Add));
		*pTD2Data = dlg.GetParam();
		pAdd->lCount = 1;
		m_pMainFrame->SendFrame( SMSFUNC_TD2_ADD , pAddData , lSize );
	}
}
void CC_TDSet::On_User_Modify()
{

	if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_MODIFY) )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	if (isLockItem(lItem))
	{
		return ;
	}

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	if ( (long)pos<0 )
		return ;
	POSITION pos2 = pos;
	ANS_GetTD2Data * pData = m_TD.GetNext( pos );
	if (pData)
	{
		DLG_C_TDSet_Modify dlg(this);
		dlg.SetParam( *pData);
		if ( dlg.DoModal() == IDOK )
		{
			SetLockItem( lItem ,true);
			long lSize = sizeof(REQ_TD2_Modify)+sizeof(ANS_GetTD2Data);
			BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
			REQ_TD2_Modify * pModify = (REQ_TD2_Modify *)pModifyData;   //ͷ
			ANS_GetTD2Data * pTD2Data = (ANS_GetTD2Data *)(pModifyData+sizeof(REQ_TD2_Modify));
			*pTD2Data = dlg.GetParam();
			pModify->lItem  = lItem;
			pModify->lCount = 1;
			m_pMainFrame->SendFrame( SMSFUNC_TD2_MODIFY , pModifyData , lSize );
		}
	}

}
void CC_TDSet::On_User_Del()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_DEL) )
	{
		return ;
	}
	long lRet = MessageBox( _T("�˲�������ɾ��ͨ����ɾ���󽫻�Ӱ��ͳ�Ƽ����ͣ��Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
	if ( lRet != IDYES )
		return;

	long lCount = m_wndList.GetSelectedCount();
	long lSize = sizeof(REQ_TD2_Del)+sizeof(ANS_TD2_DelData)*lCount;
	BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
	REQ_TD2_Del     * pDel = (REQ_TD2_Del *)pDelSend;   //ͷ
	ANS_TD2_DelData * pDelData = (ANS_TD2_DelData *)(pDelSend+sizeof(REQ_TD2_Del));
	pDel->lCount = lCount;
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	ANS_GetTD2Data * pTD2Data;
	POSITION pos2;
	while(pos)
	{
		pDelData->lItem   = m_wndList.GetNextSelectedItem(pos);
		pos2              = (POSITION)m_wndList.GetItemData(pDelData->lItem);
		if ( (long)pos2 >=0 )
		{
			pTD2Data          = m_TD.GetNext(pos2);  //ȡ���б��е�pos
			pDelData->lTDID = pTD2Data->lTDID;
			pDelData ++;
		}
	}
	m_pMainFrame->SendFrame( SMSFUNC_TD2_DEL , pDelSend , lSize );

}
void CC_TDSet::On_User_Refresh()
{
	RefreshInfo();
}
void CC_TDSet::On_User_Copy()
{
	m_wndList.CopyToClipboard();
}

BOOL CC_TDSet::FindPartnerName(const TCHAR *pName, POSITION exPos)
{
	POSITION pos = m_TD.GetHeadPosition();
	POSITION pos2;
	while (pos)
	{
		pos2 = pos;
		ANS_GetTD2Data * pData = m_TD.GetNext( pos );
		if ( pos2 != exPos )
		{
			if ( !_tcscmp( pData->szName , pName ) )
				return true;
		}
	}
	return false;
}

void CC_TDSet::Close_Partner()
{
	//������������
	while (!m_TD.IsEmpty())
	{
		ANS_GetTD2Data * pPartner = m_TD.GetHead();
		m_TD.RemoveHead();
		delete pPartner;
	}
}


void CC_TDSet::OnBnClickedCTdsetQuery()
{
	if ( !UpdateData(true) )
		return ;

	REQ_GetTD2 * pTD = new REQ_GetTD2;

	memset(pTD , 0 , sizeof(REQ_GetTD2));

	pTD->lStatus = m_lStatus;
	pTD->lAbility = m_lAbility;
	pTD->lTDType = m_lTDType;
	pTD->lOftenUse = m_lOftenUse;

	m_pMainFrame->SendFrame(SMSFUNC_GETTD2,(BYTE*)pTD,sizeof(REQ_GetTD2));


}