// FSmsSP.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "FSmsSP.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFSmsSP dialog #include "MainFrm.h" #include "ProcessSocket.h" #include "DLG_SP_See.h" CFSmsSP::CFSmsSP(CWnd* pParent /*=NULL*/) : CDialog(CFSmsSP::IDD, pParent) { //{{AFX_DATA_INIT(CFSmsSP) //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; m_bRefresh2= false; } void CFSmsSP::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFSmsSP) DDX_Control(pDX, IDC_SMSSP_S2, m_S_S2); DDX_Control(pDX, IDC_SMSSP_S1, m_S_S1); DDX_Control(pDX, IDC_SMSSP_LIST, m_wndList); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFSmsSP, CDialog) //{{AFX_MSG_MAP(CFSmsSP) ON_WM_SIZE() ON_NOTIFY(NM_DBLCLK, IDC_SMSSP_LIST, OnDblclkSmsspList) ON_NOTIFY(NM_RCLICK, IDC_SMSSP_LIST, OnRclickSmsspList) ON_NOTIFY(LVN_KEYDOWN, IDC_SMSSP_LIST, OnKeydownSmsspList) ON_NOTIFY(LVN_ITEMCHANGED, IDC_SMSSP_LIST, OnItemchangedSmsspList) //}}AFX_MSG_MAP ON_COMMAND( MENU_SP_SEE , On_SP_See ) ON_COMMAND( MENU_SP_DZ , On_SP_DZ ) ON_COMMAND( MENU_SP_QXDZ , On_SP_QXDZ ) ON_COMMAND( MENU_SP_TEST , On_SP_Test ) ON_COMMAND( MENU_SP_REFRESH, On_SP_Refresh ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFSmsSP message handlers BOOL CFSmsSP::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; m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection ); //��ʼ��List m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMSSP) ); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("���,50; ��Ŀ����,100;����,50;�۷�����,70;��������,70;ÿ�췢��,70; �� ��,100; ҵ��˵��,400;ָ��,0;����,0;")); m_wndList.SetGridLines(true); // m_wndList.SetCheckboxes(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); //m_wndList.SetBkColor( RGB(237,191,175) ); //m_wndList.SetTextBkColor( RGB(237,191,175) ); m_bInit = true; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CFSmsSP::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if ( m_bInit ) { m_wndList.MoveWindow( 0 , 0 , cx,cy-50); CRect rect,rect2; m_S_S1.GetWindowRect(&rect); rect2.top = cy-40; rect2.bottom = rect2.top+rect.Height(); rect2.left = (cx-rect.Width())/2; rect2.right= rect2.left+rect.Width(); m_S_S1.MoveWindow(&rect2); m_S_S2.GetWindowRect(&rect); rect2.top = cy-20; rect2.bottom = rect2.top+rect.Height(); rect2.left = (cx-rect.Width())/2; rect2.right= rect2.left+rect.Width(); m_S_S2.MoveWindow(&rect2); } } BOOL CFSmsSP::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CFSmsSP::ReHide() { ShowWindow( SW_HIDE ); return true; } BOOL CFSmsSP::RefreshInfo() { if ( m_pMainFrame->GetUserPurview( PURVIEW_SMSSP , false ) ) { m_strMobile = m_pMainFrame->m_strMobile; #ifndef MOBSET_CARD_VER if ( m_strMobile.GetLength()<=0 ) { CString strSelect; strSelect.Format( _T("select * from Users where userid=%d"),m_pMainFrame->m_lUserID); if ( m_AdoRS.Open(strSelect) && m_AdoRS.GetRecordCount()) { m_AdoRS.MoveFirst(); m_AdoRS.GetCollect(_T("Mobile"),m_strMobile); m_AdoRS.Close(); } } //������ʾ�ֻ����� CString str; str.Format( _T("<!!ע��:����ֻ�������:%s����˶ԣ���Ҫ������ϵ����Ա!!>"),m_strMobile); m_S_S2.SetWindowText(str); #else //������ʾ�ֻ����� CString str; str.Format( _T("<!!ע��:����ֻ�������:%s����˶ԣ���Ҫ��������û���Ϣ!!>"),m_strMobile); m_S_S2.SetWindowText(str); #endif REQ_DZ2_See * pSee = new REQ_DZ2_See; pSee->lCorpID = m_pMainFrame->m_lCorpID; pSee->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_DZ2_SEE , (BYTE*)pSee , sizeof( REQ_DZ2_See ) ); //����ȡ���ϵ����� } return true; } BOOL CFSmsSP::ProcessSocket(Socket_Head *pHead) { //�Ĺ��õ�ַ�� if (pHead->lFuncType == SMSFUNC_DZ2_SEE) { m_bRefresh = true; //��ˢ�� m_bRefresh2 = true; //����ˢ�� ANS_DZ2_See * pSee = (ANS_DZ2_See *)pHead->pFrame; ANS_DZ2_Data * pData = (ANS_DZ2_Data *)(pHead->pFrame+sizeof(ANS_DZ2_See)); m_wndList.ShowWindow( SW_HIDE ); //�ӿ���ʾ�ٶ� m_wndList.DeleteAllItems(); TCHAR Buf[32]={0}; for ( int i=0 ; i<pSee->lCount;i++ ) { //m_wndList.SetHeadings(_T("���,50; ҵ������,120;����,55;����ʱ��,75;ÿ�췢��,70; �� ��,200;")); //д���б� m_wndList.InsertItem( i , _itot(i+1,Buf,10),0); m_wndList.SetItemData(i,pData->lOperCmdID); m_wndList.SetItemText(i,1,pData->szName); //ҵ������ if ( pData->bDZ ) m_wndList.SetItemText(i,2, _T(" ��")); else m_wndList.SetItemText(i,2, _T("")); _stprintf(Buf,_T("%2d") , pData->lPrice ); m_wndList.SetItemText(i,3,Buf); //���� _stprintf(Buf,_T("%2d") , pData->lSendNum ); //�������� m_wndList.SetItemText(i,4,Buf); //_stprintf(Buf,"%02d:%02d:%02d" , pData->tDZSendTime1.wHour,pData->tDZSendTime1.wMinute,pData->tDZSendTime1.wSecond ); //m_wndList.SetItemText(i,3,Buf); //����ʱ�� if ( pData->bWeek ) { m_wndList.SetItemText(i,5,_T(" ��")); memset(Buf,0,sizeof(Buf)); if ( pData->szWeekDay[0] == '1' ) _tcscat(Buf,_T("����")); if ( pData->szWeekDay[1] == '1' ) _tcscat(Buf,_T("��һ")); if ( pData->szWeekDay[2] == '1' ) _tcscat(Buf,_T("����")); if ( pData->szWeekDay[3] == '1' ) _tcscat(Buf,_T("����")); if ( pData->szWeekDay[4] == '1' ) _tcscat(Buf,_T("����")); if ( pData->szWeekDay[5] == '1' ) _tcscat(Buf,_T("����")); if ( pData->szWeekDay[6] == '1' ) _tcscat(Buf,_T("����")); m_wndList.SetItemText(i,6,Buf+2); } else { m_wndList.SetItemText(i,5,_T(" ��")); m_wndList.SetItemText(i,6,_T("")); } m_wndList.SetItemText(i,7,pData->szBZ); //ҵ��˵�� m_wndList.SetItemText(i,8,pData->szOperCmd); //ҵ��˵�� _stprintf(Buf,_T("%04d-%02d-%02d") , pData->tBirthday.wYear,pData->tBirthday.wMonth,pData->tBirthday.wDay ); m_wndList.SetItemText(i,9,Buf); //ҵ��˵�� pData ++; } m_wndList.ShowWindow( SW_SHOW ); //�ӿ���ʾ�ٶ� m_bRefresh2 = false; return true; } if ( pHead->lFuncType == SMSFUNC_DZ_ADD ) { ANS_DZ_Add * pAdd = (ANS_DZ_Add *)pHead->pFrame; if ( pAdd->bOK ) { m_wndList.SetItemText( pAdd->lItemID , 2 , _T(" ��") ); MessageBox( _T("����ʵ�ö��ųɹ����������㽫���յ�����ƽ̨�����ֶ���Ϣ!"),_T("��ʾ"),MB_ICONINFORMATION); } else { MessageBox( _T("����ʵ�ö���ʧ�ܣ��������Ա��ϵ!"),_T("����"),MB_ICONWARNING); } return true; } if ( pHead->lFuncType == SMSFUNC_DZ_ADD2 ) { ANS_DZ_Add2 * pAdd = (ANS_DZ_Add2 *)pHead->pFrame; if ( pAdd->bOK ) { m_wndList.SetItemText( pAdd->lItemID , 2 , _T(" ��") ); CString strBrithday; strBrithday.Format(_T("%04d-%02d-%02d") , pAdd->tBirthday.wYear,pAdd->tBirthday.wMonth,pAdd->tBirthday.wDay ); m_wndList.SetItemText(pAdd->lItemID,9,strBrithday); //ҵ��˵�� MessageBox( _T("�����������ųɹ����������㽫���յ�����ƽ̨����������Ϣ!"),_T("��ʾ"),MB_ICONINFORMATION); } else { MessageBox( _T("������������ʧ�ܣ��������Ա��ϵ!"),_T("����"),MB_ICONWARNING); } return true; } if ( pHead->lFuncType == SMSFUNC_DZ_DEL ) { ANS_DZ_Del * pDel = (ANS_DZ_Del *)pHead->pFrame; if ( pDel->bOK ) { m_wndList.SetItemText( pDel->lItemID , 2 , _T("") ); MessageBox( _T("ȡ������ʵ�ö��ųɹ�!"),_T("��ʾ"),MB_ICONINFORMATION); } else { MessageBox( _T("ȡ������ʵ�ö���ʧ�ܣ��������Ա��ϵ!"),_T("����"),MB_ICONWARNING); } return true; } if ( pHead->lFuncType == SMSFUNC_DZ_TEST ) { ANS_DZ_Test * pTest = (ANS_DZ_Test *)pHead->pFrame; if ( pTest->bOK ) { MessageBox( _T("��ʾ��Ϣ���ͳɹ���������鿴�ֻ��Ķ���Ϣ!"),_T("��ʾ"),MB_ICONINFORMATION); } else { MessageBox( _T("��ʾ��Ϣ����ʧ�ܣ��������Ա��ϵ!"),_T("����"),MB_ICONWARNING); } return true; } return false; } void CFSmsSP::ShowRMenu() { if (!m_pMainFrame->GetUserPurview(PURVIEW_SMSSP,false)) //û�в鿴Ȩ�� return ; CMenu menu; menu.CreatePopupMenu(); BOOL bLock = false; long lItem = this->GetCurrentSelected(); CString str; if ( lItem >= 0 ) { bLock = isLockItem( lItem , false ); //ȡ���Ƿ��������� str = m_wndList.GetItemText(lItem,2); str.TrimLeft(); str.TrimRight(); } BOOL bXD = false; str = m_wndList.GetItemText(lItem,8); if ( str == CString(_T("XD")) ) bXD = true; //�鿴 if ( lItem >=0 && !bLock ) { menu.AppendMenu(MF_STRING , MENU_SP_SEE, _T(" �� �� ") ); if ( !bXD ) { if ( str=="��" ) menu.AppendMenu(MF_STRING , MENU_SP_QXDZ, _T(" ȡ������ ") ); else menu.AppendMenu(MF_STRING , MENU_SP_DZ, _T(" �� �� ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_SP_TEST, _T(" ��ʾ��Ϣ ") ); } } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SP_SEE , _T(" �� �� ") ); if ( !bXD ) { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SP_DZ , _T(" �� �� ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SP_QXDZ , _T(" ȡ������ ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SP_TEST, _T(" ��ʾ��Ϣ ") ); } } menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_SP_REFRESH, _T(" ˢ �� ") ); //��ʾ�˵� POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } long CFSmsSP::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void CFSmsSP::OnDblclkSmsspList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_SP_See(); } void CFSmsSP::OnRclickSmsspList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void CFSmsSP::OnKeydownSmsspList(NMHDR* pNMHDR, LRESULT* pResult) { LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; } void CFSmsSP::OnItemchangedSmsspList(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; *pResult = 0; if ( m_wndList.GetSelectedCount() > 1 ) //����1�������� return ; if ( m_bRefresh2 ) return ; //ԭ�ǽ��ã����������� if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 ) { REQ_DZ_Add * pAdd = new REQ_DZ_Add; memset(pAdd,0,sizeof(REQ_DZ_Add)); pAdd->lItemID = pNMListView->iItem; pAdd->lOperCmdID = m_wndList.GetItemData(pNMListView->iItem); pAdd->lCorpID = m_pMainFrame->m_lCorpID; pAdd->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_DZ_ADD , (BYTE*)pAdd , sizeof( REQ_DZ_Add ) ); //����ȡ���ϵ����� } //ԭ�����ã������ǽ��� if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 ) { REQ_DZ_Del * pDel = new REQ_DZ_Del; memset(pDel,0,sizeof(REQ_DZ_Del)); pDel->lItemID = pNMListView->iItem; pDel->lOperCmdID = m_wndList.GetItemData(pNMListView->iItem); pDel->lCorpID = m_pMainFrame->m_lCorpID; pDel->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_DZ_DEL , (BYTE*)pDel , sizeof( REQ_DZ_Del ) ); //����ȡ���ϵ����� } } void CFSmsSP::OnOK() { //CDialog::OnOK(); } void CFSmsSP::OnCancel() { //CDialog::OnCancel(); } void CFSmsSP::SetLockItem(long lItem, BOOL bLock) { if ( bLock ) m_wndList.SetIconIndex( lItem , 1 ); else m_wndList.SetIconIndex( lItem , 0 ); } BOOL CFSmsSP::isLockItem(long lItem, BOOL bShowWarning) { BOOL b = (m_wndList.GetIconIndex(lItem) == 1); if ( b && bShowWarning ) { MessageBox( _T(" ��¼����������ȴ����������غ��ٲ���!") , _T("������") , MB_ICONINFORMATION ); } return b; } void CFSmsSP::On_SP_See() { long lItem = GetCurrentSelected(); if ( lItem <0 ) return ; //m_wndList.SetHeadings(_T("���,50; ��Ŀ����,100;����,50;����,55;��������,75;ÿ�췢��,70; �� ��,200; ҵ��˵��,250")); CString strTemp; DLG_SP_See dlg(this); dlg.m_strMobile= m_strMobile; dlg.m_strName= m_wndList.GetItemText(lItem,1); strTemp = m_wndList.GetItemText(lItem,2);strTemp.TrimLeft();strTemp.TrimRight(); if ( strTemp == _T("��") ) dlg.m_bDZ = true; else dlg.m_bDZ = false; dlg.m_strPrice = m_wndList.GetItemText(lItem,3); dlg.m_strSendCount = m_wndList.GetItemText(lItem,4); strTemp = m_wndList.GetItemText(lItem,5);strTemp.TrimLeft();strTemp.TrimRight(); if ( strTemp == _T("��") ) dlg.m_strBL = _T("ÿ�췢��"); else { strTemp = m_wndList.GetItemText(lItem,6); dlg.m_strBL.Format( _T("ÿ����%s����"),strTemp); } dlg.m_strMsg = m_wndList.GetItemText(lItem,7); dlg.m_strOperCmd = m_wndList.GetItemText(lItem,8); dlg.m_strBirthday= m_wndList.GetItemText(lItem,9); BOOL bXD = dlg.m_strOperCmd==CString(_T("XD"))?true:false; int iRet = dlg.DoModal(); if ( iRet == SP_SEE_DZ ) { if ( bXD ) { m_tBirthday = dlg.m_tBirthday; On_SP_DZ2(); } else { On_SP_DZ(); } return; } if ( iRet == SP_SEE_QXDZ ) { On_SP_QXDZ(); return; } if ( iRet == SP_SEE_TEST ) { On_SP_Test(); return; } } void CFSmsSP::On_SP_DZ() { if ( m_strMobile.GetLength() <= 0 ) { #ifdef MOBSET_CARD_VER MessageBox( _T("�ֻ�������������ϵ���û���Ϣ�и��ģ�"),_T("����"),MB_ICONWARNING ); #else MessageBox( _T("�ֻ�������������ϵ����Ա��������ϣ�"),_T("����"),MB_ICONWARNING ); #endif return ; } long lItem = GetCurrentSelected(); if ( lItem <0 ) return ; REQ_DZ_Add * pAdd = new REQ_DZ_Add; memset(pAdd,0,sizeof(REQ_DZ_Add)); pAdd->lItemID = lItem; pAdd->lOperCmdID = m_wndList.GetItemData(lItem); pAdd->lCorpID = m_pMainFrame->m_lCorpID; pAdd->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_DZ_ADD , (BYTE*)pAdd , sizeof( REQ_DZ_Add ) ); //����ȡ���ϵ����� } void CFSmsSP::On_SP_DZ2() { if ( m_strMobile.GetLength() <= 0 ) { #ifdef MOBSET_CARD_VER MessageBox( _T("�ֻ�������������ϵ���û���Ϣ�и��ģ�"),_T("����"),MB_ICONWARNING ); #else MessageBox( _T("�ֻ�������������ϵ����Ա��������ϣ�"),_T("����"),MB_ICONWARNING ); #endif return ; } long lItem = GetCurrentSelected(); if ( lItem <0 ) return ; REQ_DZ_Add2 * pAdd = new REQ_DZ_Add2; memset(pAdd,0,sizeof(REQ_DZ_Add2)); pAdd->lItemID = lItem; pAdd->lOperCmdID = m_wndList.GetItemData(lItem); pAdd->lCorpID = m_pMainFrame->m_lCorpID; pAdd->lUserID = m_pMainFrame->m_lUserID; m_tBirthday.GetAsSystemTime(pAdd->tBirthday); m_pMainFrame->SendFrame( SMSFUNC_DZ_ADD2 , (BYTE*)pAdd , sizeof( REQ_DZ_Add2 ) ); //����ȡ���ϵ����� } void CFSmsSP::On_SP_QXDZ() { long lItem = GetCurrentSelected(); if ( lItem <0 ) return ; REQ_DZ_Del * pDel = new REQ_DZ_Del; memset(pDel,0,sizeof(REQ_DZ_Del)); pDel->lItemID = lItem; pDel->lOperCmdID = m_wndList.GetItemData(lItem); pDel->lCorpID = m_pMainFrame->m_lCorpID; pDel->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_DZ_DEL , (BYTE*)pDel , sizeof( REQ_DZ_Del ) ); //����ȡ���ϵ����� } void CFSmsSP::On_SP_Test() { if ( m_strMobile.GetLength() <= 0 ) { #ifdef MOBSET_CARD_VER MessageBox( _T("�ֻ�������������ϵ���û���Ϣ�и��ģ�"),_T("����"),MB_ICONWARNING ); #else MessageBox( _T("�ֻ�������������ϵ����Ա��������ϣ�"),_T("����"),MB_ICONWARNING ); #endif return ; } long lItem = GetCurrentSelected(); if ( lItem <0 ) return ; REQ_DZ_Test * pTest = new REQ_DZ_Test; memset(pTest,0,sizeof(REQ_DZ_Test)); pTest->lItemID = lItem; pTest->lOperCmdID = m_wndList.GetItemData(lItem); pTest->lCorpID = m_pMainFrame->m_lCorpID; pTest->lUserID = m_pMainFrame->m_lUserID; CString strTemp; strTemp = m_wndList.GetItemText(lItem,3);strTemp.TrimLeft();strTemp.TrimRight(); pTest->lPrice = _ttol(strTemp); strTemp = m_wndList.GetItemText(lItem,4);strTemp.TrimLeft();strTemp.TrimRight(); pTest->lSendCount = _ttol(strTemp); _tcscpy(pTest->szMobile , m_strMobile ); m_pMainFrame->SendFrame( SMSFUNC_DZ_TEST , (BYTE*)pTest , sizeof( REQ_DZ_Test ) ); //����ȡ���ϵ����� } void CFSmsSP::On_SP_Refresh() { RefreshInfo(); }