// DLG_Corp_SF.cpp : 实现文件 // #include "stdafx.h" #include "SmsManager.h" #include "DLG_Corp_SF.h" #include "afxdialogex.h" #include "DLG_Corp_LXR_SF.h" // DLG_Corp_SF 对话框 IMPLEMENT_DYNAMIC(DLG_Corp_SF, CDialogEx) DLG_Corp_SF::DLG_Corp_SF(CWnd* pParent /*=NULL*/) : CDialogEx(IDD_CORP_SF, pParent) , m_strCorpName(_T("")) , m_strSmsNum(_T("")) { memset(&m_See, 0, sizeof(m_See)); m_pSFData = NULL; m_pYWYData = NULL; m_pSFDlg = NULL; } DLG_Corp_SF::~DLG_Corp_SF() { } void DLG_Corp_SF::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_CORP_SF_CORPNME, m_strCorpName); DDX_Text(pDX, IDC_CORP_SF_SMSNUM, m_strSmsNum); DDX_Control(pDX, IDC_CORP_SF_LIST, m_wndList); } BEGIN_MESSAGE_MAP(DLG_Corp_SF, CDialogEx) ON_NOTIFY(NM_DBLCLK, IDC_CORP_SF_LIST, &DLG_Corp_SF::OnNMDblclkCorpSfList) ON_NOTIFY(LVN_ITEMCHANGED, IDC_CORP_SF_LIST, &DLG_Corp_SF::OnLvnItemchangedCorpSfList) END_MESSAGE_MAP() // DLG_Corp_SF 消息处理程序 BOOL DLG_Corp_SF::OnInitDialog() { CDialogEx::OnInitDialog(); m_strCorpName = m_See.szCorpName; m_strSmsNum = m_See.szSMSNum; this->UpdateData(false); //初始化List m_Image.Create(16, 16, ILC_COLOR16 | ILC_MASK, 5, 5); //m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ)); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("序号,50; 状态,60; 下单时间,130;运单号,120; 寄件内容,120; 收件人,100; 地址,250;")); m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image, LVSIL_SMALL); POSITION pos; TCHAR Buf[32]; CString str; for (int i = 0; i< m_See.lCount; i++) { ANS_Corp_SFData * pData = new ANS_Corp_SFData; *pData = m_pSFData[i]; pos = m_SF.AddTail(pData); _stprintf(Buf, _T("%d"), i + 1); m_wndList.InsertItem(i, Buf, 0); m_wndList.SetItemData(i, (DWORD_PTR)pos); int iTemp = 1; switch (pData->lStatus) { case 1: m_wndList.SetItemText(i, iTemp++, _T("已取消")); break; case 2: m_wndList.SetItemText(i, iTemp++, _T("已收件")); break; case 3: m_wndList.SetItemText(i, iTemp++, _T("已签收")); break; case 0: default: m_wndList.SetItemText(i, iTemp++, _T("已下单")); break; } str.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tCreate.wYear, pData->tCreate.wMonth, pData->tCreate.wDay, pData->tCreate.wHour,pData->tCreate.wMinute); m_wndList.SetItemText(i, iTemp++, str); m_wndList.SetItemText(i, iTemp++, pData->Res_mailno); m_wndList.SetItemText(i, iTemp++, pData->Cargo_name); m_wndList.SetItemText(i, iTemp++, pData->d_contact); m_wndList.SetItemText(i, iTemp++, pData->d_address); } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } long DLG_Corp_SF::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if (pos) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void DLG_Corp_SF::OnNMDblclkCorpSfList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); long lItem = GetCurrentSelected(); if (lItem < 0) return; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_Corp_SFData * pData = m_SF.GetNext(pos); if (pData) { DLG_Corp_LXR_SF dlg(this); m_pSFDlg = &dlg; //dlg.SetParam(m_See.lYWYCount,m_See.lDefaultYWYID,m_pYWYData,*pData,false); dlg.SetParam(0,0,NULL, *pData, false); dlg.DoModal(); m_pSFDlg = NULL; } *pResult = 0; } BOOL DLG_Corp_SF::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame) { if (pHead->lFuncType == SMSFUNC_CORP_SF_ADD || pHead->lFuncType == SMSFUNC_CORP_SF_CANCEL || pHead->lFuncType == SMSFUNC_CORP_SF_ROUTE) { //ANS_Corp_SF_Add * pAdd = (ANS_Corp_SF_Add *)pFrame; //ANS_Corp_SFData * pData = (ANS_Corp_SFData *)(pFrame + sizeof(ANS_Corp_SF_Add)); if (this->m_pSFDlg) { m_pSFDlg->ProcessSocket(pHead, pFrame); } return true; } return false; } void DLG_Corp_SF::SetParam(ANS_Corp_SF_See * pSee, ANS_Corp_SFData * pSFData, ANS_Corp_LXR_YWYData * pYWYData) { m_See = *pSee; m_pSFData = pSFData; m_pYWYData = pYWYData; } void DLG_Corp_SF::OnLvnItemchangedCorpSfList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; }