// DlgAnnex.cpp : 实现文件 // #include "stdafx.h" #include "YLGL.h" #include "DlgAnnex.h" #include "ShowPhoto.h" // CDlgAnnex 对话框 IMPLEMENT_DYNAMIC(CDlgAnnex, CDialog) CDlgAnnex::CDlgAnnex(CWnd* pParent /*=NULL*/) : CDialog(CDlgAnnex::IDD, pParent),m_pvtAnnex(NULL) { } CDlgAnnex::~CDlgAnnex() { } void CDlgAnnex::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_list_box); } BEGIN_MESSAGE_MAP(CDlgAnnex, CDialog) ON_LBN_DBLCLK(IDC_LIST1, &CDlgAnnex::OnLbnDblclkList1) ON_BN_CLICKED(BTN_LOOK, &CDlgAnnex::OnBnClickedLook) ON_BN_CLICKED(BTN_DELETE, &CDlgAnnex::OnBnClickedDelete) END_MESSAGE_MAP() // CDlgAnnex 消息处理程序 BOOL CDlgAnnex::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 if ( m_pvtAnnex != NULL ) { for ( vector::iterator it = m_pvtAnnex->begin(); it != m_pvtAnnex->end(); it++ ) { m_list_box.AddString(it->strMD5); } } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CDlgAnnex::OnOK() { // TODO: 在此添加专用代码和/或调用基类 CDialog::OnOK(); } void CDlgAnnex::OnCancel() { // TODO: 在此添加专用代码和/或调用基类 CDialog::OnCancel(); } void CDlgAnnex::OnLbnDblclkList1() { // TODO: 在此添加控件通知处理程序代码 OnBnClickedLook(); } void CDlgAnnex::OnBnClickedLook() { // TODO: 在此添加控件通知处理程序代码 int nSel = m_list_box.GetCurSel(); if ( nSel != LB_ERR ) { CString strMd5; m_list_box.GetText(nSel,strMd5); vector::iterator it = m_pvtAnnex->begin(); for ( ;it != m_pvtAnnex->end(); it++ ) { if ( it->strMD5 == strMd5 ) { ShowPhoto dlg; dlg.m_pImg = it->pImage; dlg.DoModal(); break; } } } } void CDlgAnnex::OnBnClickedDelete() { int nSel = m_list_box.GetCurSel(); if ( nSel != LB_ERR ) { CString strMd5; m_list_box.GetText(nSel,strMd5); DWORD dwSendLen = strMd5.GetLength() + m_staff_id.GetLength() + m_staff_citizen_id_number.GetLength() + m_strImageType.GetLength() + 4*sizeof(DWORD); BYTE *pSendData = new BYTE[dwSendLen]; DWORD dwLen0 = strMd5.GetLength(); // 相片名称; memcpy(pSendData, &dwLen0, sizeof(DWORD)); memcpy(pSendData + sizeof(DWORD), strMd5.GetString(), dwLen0); // 员工编号; DWORD dwLen = m_staff_id.GetLength(); memcpy(pSendData + dwLen0 + sizeof(DWORD), &dwLen, sizeof(DWORD)); memcpy(pSendData + dwLen0 + 2*sizeof(DWORD), m_staff_id.GetString(), dwLen); // 员工身份证号; DWORD dwLen1 = m_staff_citizen_id_number.GetLength(); memcpy(pSendData + dwLen0 + 2*sizeof(DWORD) + dwLen, &dwLen1, sizeof(DWORD)); memcpy(pSendData + dwLen0 + 3*sizeof(DWORD) + dwLen, m_staff_citizen_id_number.GetString(), dwLen1); // 相片类型; DWORD dwLen2 = m_strImageType.GetLength(); memcpy(pSendData + dwLen0 + 3*sizeof(DWORD) + dwLen + dwLen1, &dwLen2, sizeof(DWORD)); memcpy(pSendData + dwLen0 + 4*sizeof(DWORD) + dwLen + dwLen1, m_strImageType.GetString(), dwLen2); g_nSendCode = 42; g_pMainWnd->ProcessChatMessageRequest2(pSendData, dwSendLen); g_nSendCode = 0; delete[]pSendData; if (g_bSendOK == 0) { return; } m_list_box.DeleteString(nSel); for (vector::iterator it = m_pvtAnnex->begin(); it != m_pvtAnnex->end(); it++ ) { if ( it->strMD5 == strMd5 ) { m_pvtAnnex->erase(it); break; } } AfxMessageBox(_T("删除文件成功")); } }