// annualfee.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "annualfee.h"
#include "MyMdi.H"
#include "Booking2.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "Shlwapi.lib")
/////////////////////////////////////////////////////////////////////////////
// annualfee
IMPLEMENT_DYNCREATE(annualfee, MyFormView)
annualfee::annualfee()
: MyFormView(annualfee::IDD)
{
	//{{AFX_DATA_INIT(annualfee)
	m_filter = _T("");
	m_bz = _T("");
	//}}AFX_DATA_INIT
}

annualfee::~annualfee()
{
}

void annualfee::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(annualfee)
	DDX_Control(pDX, IDC_COMBO1, m_combo1);
	DDX_Control(pDX, IDC_LIST2, m_List1);
	DDX_Control(pDX, IDC_STATIC1, m_static1);
	DDX_CBString(pDX, IDC_COMBO1, m_filter);
	DDX_Text(pDX, IDC_EDIT1, m_bz);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(annualfee, MyFormView)
	//{{AFX_MSG_MAP(annualfee)
	ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTmodify, OnBUTmodify)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
	ON_BN_CLICKED(IDC_BUTexport, OnBUTexport)
	ON_BN_CLICKED(IDC_BUTmodify2, OnBUTmodify2)
	ON_NOTIFY(NM_RDBLCLK, IDC_LIST2, OnRdblclkList2)
	ON_BN_CLICKED(IDC_BUTToPhotoPrint, OnBUTToPhotoPrint)
	ON_BN_CLICKED(IDC_BUTburncd, OnBUTburncd)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_BN_CLICKED(IDC_BUTburncd2, OnBUTburncd2)
	//}}AFX_MSG_MAP
	ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// annualfee diagnostics

#ifdef _DEBUG
void annualfee::AssertValid() const
{
	MyFormView::AssertValid();
}

void annualfee::Dump(CDumpContext& dc) const
{
	MyFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// annualfee message handlers

void annualfee::OnInitialUpdate()
{
	MyFormView::OnInitialUpdate();
	// TODO: Add your specialized code here and/or call the base class
	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);

	// Here we create the outbar control using the splitter as its parent
	// and setting its id to the first pane.
	CRect rc2;
	GetWindowRect(rc2);
	::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);

	EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);


	int idarray[] = { IDC_BUTburncd2, IDC_BUTToPhotoPrint, IDC_BUTclose };
	int idcount = 3;

	int btnwid;
	CRect prerc;
	for (int a = idcount - 2; a >= 0; a--)
	{
		GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
		ScreenToClient(prerc);
		GetDlgItem(idarray[a])->GetWindowRect(rc2);
		ScreenToClient(rc2);
		btnwid = rc2.Width();
		rc2.right = prerc.left;
		rc2.left = rc2.right - btnwid;
		GetDlgItem(idarray[a])->MoveWindow(rc2);
	}

	int idarray2[] = { IDC_BUTTON1, IDC_BUTTON2, IDC_BUTTON3, IDC_BUTexport, IDC_BUTToPhotoPrint };
	idcount = 3;

	for (a = 1; a < idcount; a++)
	{
		GetDlgItem(idarray2[a - 1])->GetWindowRect(prerc);
		ScreenToClient(prerc);
		GetDlgItem(idarray2[a])->GetWindowRect(rc2);
		ScreenToClient(rc2);
		btnwid = rc2.Width();
		rc2.left = prerc.right;
		rc2.right = rc2.left + btnwid;
		GetDlgItem(idarray2[a])->MoveWindow(rc2);
	}

	m_static1.SetFont(&g_titlefont);

	m_List1.SetHeadings("������,100;�б�����,100;Ů������,100;��������,100;�ӵ���,100;���,100;Ӧ������,100;�Ƿ񽻷�,100;��������,100;�տ���,100;��ͬ,100;�б��绰,100;Ů���绰,100");

	m_List1.LoadColumnInfo(302);
	m_List1.m_bSortSupport = 0;
	GetData();
	for (int i = 0; i < g_userarray.GetSize(); i++)
	{
		m_combo1.AddString(g_userarray.ElementAt(i).ElementAt(1));
	}
	FillGrid();
	m_combo1.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 200;
	m_combo1.MoveWindow(rc2);
	GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2);
	SetComboHei(&m_combo1, rc2.Height());

	GetDlgItem(IDC_BUTburncd2)->EnableWindow(IsHasRights2new(16));
	GetDlgItem(IDC_BUTmodify2)->EnableWindow(IsHasRights2new(16));
}

void annualfee::FillGrid(BOOL bStatus)
{
	m_List1.DeleteAllItems2();
	int ii = 0;
	m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
	int count = 0;
	if (m_filter.IsEmpty() || bStatus)
	{
		if (bStatus == 1)
		{
			BOOL bFinded = 0;
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					continue;
				}
				if (m_List1array.ElementAt(ii).ElementAt(16) == "1")
				{
					bFinded = 1;
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
				else
				{
					bFinded = 0;
				}
			}
		}
		else if (bStatus == 2)
		{
			BOOL bFinded = 0;
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					continue;
				}
				if (m_List1array.ElementAt(ii).ElementAt(16) == "2")
				{
					bFinded = 1;
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
				else
				{
					bFinded = 0;
				}
			}
		}
		else
		{
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
			}
		}
	}
	else
	{
		int nAdd = 0;
		int type = GetType(m_filter);
		if (type == 1)//�绰
		{
			BOOL bFinded = 0;
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					continue;
				}
				if (m_List1array.ElementAt(ii).ElementAt(12 + nAdd).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(11 + nAdd).Find(m_filter) != -1)
				{
					bFinded = 1;
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
				else
				{
					bFinded = 0;
				}
			}
		}
		else if (type == 2)//ƴ��
		{
			BOOL bFinded = 0;
			m_filter.MakeUpper();
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					continue;
				}
				if (m_List1array.ElementAt(ii).ElementAt(13 + nAdd).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(14 + nAdd).Find(m_filter) != -1)
				{
					bFinded = 1;
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
				else
				{
					bFinded = 0;
				}
			}
		}
		else
		{
			BOOL bFinded = 0;
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					continue;
				}
				if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(4).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(12 + nAdd).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(11 + nAdd).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(13 + nAdd).Find(m_filter) != -1\
					|| m_List1array.ElementAt(ii).ElementAt(14 + nAdd).Find(m_filter) != -1)
				{
					bFinded = 1;
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
				else
				{
					bFinded = 0;
				}
			}
		}
	}
	m_List1.m_arLabels.SetSize(count, 1);
	ii = count;
	m_List1.m_LabelCount = ii;
	m_List1.SetItemCountEx(ii);
	CString str;
	str.Format("����:%d", ii);
	SetDlgItemText(IDC_STATIC2, str);

	if (!g_id.IsEmpty())
	{
		for (int i = 0; i < m_List1.GetItemCount(); i++)
		{
			if (g_id == m_List1.GetItemText(i, 0))
			{
				m_List1.SetItemState(i, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
				m_List1.EnsureVisible(i, FALSE);
				break;
			}
		}
	}
}

void annualfee::OnBUTclose()
{
	// TODO: Add your control notification handler code here
	GetParent()->SendMessage(WM_CLOSE);
}

void annualfee::OnButton1()
{
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid();
}

void annualfee::OnSelchangeCombo1()
{
	// TODO: Add your control notification handler code here
	SetTimer(1, 100, NULL);
}

void annualfee::OnTimer(UINT nIDEvent)
{
	// TODO: Add your message handler code here and/or call default
	KillTimer(nIDEvent);
	OnButton1();
}

BOOL annualfee::PreTranslateMessage(MSG* pMsg)
{
	// TODO: Add your specialized code here and/or call the base class
	try
	{
		if (pMsg->message == WM_KEYDOWN)
		{
			switch (pMsg->wParam)
			{
			case VK_RETURN:
				OnButton1();
				return 1;
			case 0x43: // copy
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_COPY);
					return TRUE;
				}
				break;
			case 0x56: //Ctrl + V:
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_PASTE);
					return TRUE;
				}
				break;
			case 0x58: // cut
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_CUT);
					return TRUE;
				}
				break;
			case 0x5A: //undo
			case 0x59: //redo
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_UNDO);
					return TRUE;
				}
				break;
			}
		}
		/*	else if(pMsg->message==WM_LBUTTONDOWN)
			{
			CPoint pt;
			CRect rc,rc2;
			::GetCursorPos (&pt);
			m_List1.GetWindowRect (rc2);
			pt.x-=rc2.left ;
			pt.y-=rc2.top ;
			m_List1.GetHeaderCtrl()->GetItemRect (0, rc);
			rc.right =rc.left +rc2.Width ();
			if(rc.PtInRect (pt))
			return 1;
			}*/
		return MyFormView::PreTranslateMessage(pMsg);
	}
	catch (...)
	{
	}
}

//-----------------------------------------------------------------
// remark by Jeff 2014-12-12
// ������GetNo
// ��������str�н�����ÿ����Ƭ��,Ȼ�����յ�CStringArray��;
// ������
//		str:ѡ�õ���Ƭ����,�磺"001,002,003" ��ָ�����Ϊ"|",���Ӧ��"001|002|003"
//		array:�յ�����,������Ž��������Ƭ��;
// ���أ�
// ע�⣺�����ָ�����ɵ�����,�ڸú����ѽ��;
//-----------------------------------------------------------------
void annualfee::GetNo(CString str, CStringArray &array)
{
	if (!str.IsEmpty())
	{
		int pos = str.Find(",");
		while (pos != -1)
		{
			array.Add(str.Left(pos));
			str = str.Right(str.GetLength() - pos - 1);
			pos = str.Find(",");
		}
		array.Add(str);
	}
}

extern int   CALLBACK   BrowseProc(HWND   hwnd, UINT   msg, LPARAM   lParam, LPARAM   lpData);
/*{
switch(msg)
{
case   BFFM_INITIALIZED:
SendMessage(hwnd,   BFFM_SETSELECTION,   TRUE,   NULL);
break;
case   BFFM_SELCHANGED:
{
char   szFileName[MAX_PATH];
LPITEMIDLIST   pidlCurrent   =   (LPITEMIDLIST)lParam;
SHGetPathFromIDList(pidlCurrent,   szFileName);
SendMessage(hwnd,   BFFM_SETSTATUSTEXT,   0,   (LPARAM)szFileName);
}
break;
}
return   0;
}*/

void annualfee::GetSavePath(CString &path)
{
	char   lpszDisplayName[MAX_PATH], szFileName[MAX_PATH];
	LPITEMIDLIST   pidlDesktop, pidlCurrent;
	if (SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop)
		== NOERROR)
	{
		BROWSEINFO   bi;
		bi.hwndOwner = this->m_hWnd;
		bi.pidlRoot = pidlDesktop;
		bi.pszDisplayName = lpszDisplayName;
		bi.lpszTitle = "\n�ĵ������Ŀ¼:";
		bi.ulFlags = BIF_STATUSTEXT&BIF_RETURNONLYFSDIRS;
		bi.lpfn = BrowseProc;
		bi.lParam = 0;
		bi.iImage = 0;
		pidlCurrent = SHBrowseForFolder(&bi);

		SHGetPathFromIDList(pidlCurrent, szFileName);
		path = szFileName;
	}
}

int annualfee::FindArray(CStringArray *pArray, CString *pStr)
{
	for (int i = 0; i < pArray->GetSize(); i++)
	{
		if (pArray->ElementAt(i) == *pStr)
			return i;
	}
	return -1;
}

void annualfee::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	OnBUTmodify();
	*pResult = 0;
}



void annualfee::OnRdblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	OnBUTmodify2();
	*pResult = 0;
}

void annualfee::OnButton2()
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid(2);
}

void annualfee::OnButton3()
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid(1);
}

void annualfee::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult)
{
	NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
	// Take the default processing unless we set this to something else below.
	*pResult = 0;

	// First thing - check the draw stage. If it's the control's prepaint
	// stage, then tell Windows we want messages for every item.
	if (CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage)
	{
		*pResult = CDRF_NOTIFYITEMDRAW;
	}
	else if (CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage)
	{
		// This is the prepaint stage for an item. Here's where we set the
		// item's text color. Our return value will tell Windows to draw the
		// item itself, but it will use the new color we set here.
		// We'll cycle the colors through red, green, and light blue.
		COLORREF crText;
		int pos = pLVCD->nmcd.dwItemSpec;
		if (pos % 2)
			pLVCD->clrTextBk = g_gridcol1;
		else
			pLVCD->clrTextBk = g_gridcol2;
		while (m_List1.m_arLabels.ElementAt(pos).ElementAt(0).IsEmpty())
		{
			pos--;
			if (pos < 1)break;
		}

		if (atoi(m_List1.m_arLabels.ElementAt(pos).ElementAt(16)) == 0)
			crText = RGB(20, 133, 20);
		else if (atoi(m_List1.m_arLabels.ElementAt(pos).ElementAt(16)) == 1)
			crText = RGB(255, 255, 0);
		else
			crText = RGB(220, 0, 0);




		// Store the color back in the NMLVCUSTOMDRAW struct.
		pLVCD->clrText = crText;

		// Tell Windows to paint the control itself.
		*pResult = CDRF_DODEFAULT;
	}
}



void annualfee::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		m_bz = ""; UpdateData(0);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	g_id = m_List1.GetItemText(iItem, 0);
	while (g_id == "")
	{
		iItem--;
		g_id = m_List1.GetItemText(iItem, 0);

	}
	m_bz = m_List1.GetItemText(iItem, 15);
	UpdateData(0);


	*pResult = 0;
}




void annualfee::HidePrice()
{

}
void annualfee::OnBUTexport()
{
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid(3);
}

void annualfee::OnBUTToPhotoPrint()
{
	// TODO: Add your control notification handler code here
	ListToXLS(&m_List1, "c:\\�����.xls", 0);
}

void annualfee::GetData()
{
	CString filter = "time2<>''";
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 228;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return;
	DataToArray(&m_List1array);
}

void annualfee::OnBUTburncd2()
{
	// TODO: Add your control notification handler code here
	if (IsHasRights2new(16) == 0)return;
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ��Ҫ���ѵĿ��������!", MB_ICONINFORMATION);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	int iItemBak = iItem;

	CString id = m_List1.GetItemText(iItem, 0);
	while (id == "")
	{
		iItem--;
		id = m_List1.GetItemText(iItem, 0);
	}
	for (int i = iItem; i < iItemBak; i++)
	{
		if (m_List1.GetItemText(i, 7) != "�ѽ�")
		{
			AfxMessageBox("���Ƚ����������!", MB_ICONINFORMATION);
			return;
		}
	}

	CString name = m_List1.GetItemText(iItem, 1) + "," + m_List1.GetItemText(iItem, 2);
	iItem = iItemBak;
	CString year = m_List1.GetItemText(iItem, 5);	CString date = m_List1.GetItemText(iItem, 8);
	name.TrimLeft(",");
	name.TrimRight(",");
	name = "����:" + name;
	CString str;
	str.Format("%s\r\n���:%s\r\nȷ�Ͽ��������뽻���������? �Ƿ����?", name, year);
	if (AfxMessageBox(str, MB_YESNO | MB_ICONINFORMATION) != IDYES)
		return;
	CString sql;
	str.Format("%s\r\n���:%s\r\n��������Ƿ���?", name, year);
	if (AfxMessageBox(str, MB_YESNO | MB_ICONINFORMATION) != IDYES)
		sql.Format("delete from annualfee where [id]='%s' and [date]='%s'", id, date);
	else
		sql.Format("delete from annualfee where [id]='%s' and [date]='%s'***insert into annualfee([id],[year],[date],[clerk])values('%s','%s','%s','%s')", id, date, id, year, g_date, g_user.name);

	g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql);
	if (g_bSendOK == 0)return;	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);


	GetData(); FillGrid();

}
void annualfee::OnBUTmodify2()
{
	// TODO: Add your control notification handler code here
	UpdateData();
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString id = m_List1.GetItemText(iItem, 0);
	while (id == "")
	{
		iItem--;
		id = m_List1.GetItemText(iItem, 0);
	}
	CString sql;
	sql.Format("update dindan set bz='%s' where id='%s'", m_bz, id);


	g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql);
	if (g_bSendOK == 0)return;	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);


	GetData(); FillGrid();
}
void annualfee::OnBUTburncd()
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString id = m_List1.GetItemText(iItem, 0);
	while (id == "")
	{
		iItem--;
		id = m_List1.GetItemText(iItem, 0);
	}
	Booking2 dlg;
	dlg.m_id = id;
	dlg.m_bModify = 1;

	if (dlg.DoModal() == IDOK)
	{
		GetData();
		FillGrid();
	}
}
void annualfee::OnBUTmodify()
{
	// TODO: Add your control notification handler code here

	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString m_id = m_List1.GetItemText(iItem, 0);
	while (m_id == "")
	{
		iItem--;
		m_id = m_List1.GetItemText(iItem, 0);
	}



	char no[100];
	memset(no, 0, 100);
	strcpy(no, m_id);
	g_nSendCode = 38;
	g_pMainWnd->ProcessChatMessageRequest2((BYTE*)no, 100);
	g_nSendCode = 0;
	if (g_bSendOK == 0)
	{
		return;
	}


	CString path = g_mainpath + "\\1.jpg";	
	::DeleteFile(path);				// ɾ���ͻ���Ŀ¼�µ�1.jpg��
	CFile fp;
	fp.Open(path, CFile::modeCreate | CFile::modeWrite);
	fp.Write(g_pData, g_nLeng);
	fp.Close();
	ShellExecute(NULL, _T("open"), path, NULL, NULL, SW_SHOWMAXIMIZED);
}