// DLG_FindSR.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_FindSR.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_FindSR dialog #include "MainFrm.h" #include "DLG_FindSR_Send.h" DLG_FindSR::DLG_FindSR(CWnd* pParent /*=NULL*/) : CDialog(DLG_FindSR::IDD, pParent) { //{{AFX_DATA_INIT(DLG_FindSR) m_bGAddress = FALSE; m_bPAddress = FALSE; m_lMon = -1; m_lDay = -1; m_lDay2 = -1; m_lMon2 = -1; //}}AFX_DATA_INIT m_pMainFrame = (CMainFrame*)pParent; m_bHasGAddress = true; m_bHasPAddress = true; } void DLG_FindSR::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_FindSR) DDX_Control(pDX, IDC_FINDSR_S1, m_S_S1); DDX_Control(pDX, IDC_FINDSR_LIST, m_wndList); DDX_Check(pDX, IDC_FINDSR_GADDRESS, m_bGAddress); DDX_Check(pDX, IDC_FINDSR_PADDRESS, m_bPAddress); DDX_CBIndex(pDX, IDC_FINDSR_MON, m_lMon); DDX_CBIndex(pDX, IDC_FINDSR_DAY, m_lDay); DDX_CBIndex(pDX, IDC_FINDSR_DAY2, m_lDay2); DDX_CBIndex(pDX, IDC_FINDSR_MON2, m_lMon2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_FindSR, CDialog) //{{AFX_MSG_MAP(DLG_FindSR) ON_BN_CLICKED(IDC_FINDSR_GADDRESS, OnFindsrGaddress) ON_BN_CLICKED(IDC_FINDSR_PADDRESS, OnFindsrPaddress) ON_BN_CLICKED(IDC_FINDSR_FIND, OnFindsrFind) ON_BN_CLICKED(IDC_FINDSR_ADD, OnFindsrAdd) ON_NOTIFY(NM_RCLICK, IDC_FINDSR_LIST, OnRclickFindsrList) ON_NOTIFY(LVN_KEYDOWN, IDC_FINDSR_LIST, OnKeydownFindsrList) //}}AFX_MSG_MAP ON_COMMAND( MENU_FINDSR_DEL , On_User_Del ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_FindSR message handlers BOOL DLG_FindSR::OnInitDialog() { CDialog::OnInitDialog(); //初始化列表 //创建图像列表 m_Image.Create( 20 , 20 , ILC_COLOR32|ILC_MASK , 5 , 1); CBitmap bmp; bmp.LoadBitmap( IDB_L_USER_NOR ); m_Image.Add( &bmp , RGB(193,193,193) ); //设置 //加入图像列表 m_wndList.SetImageList(&m_Image,LVSIL_SMALL); m_wndList.SetBkColor( RGB(237,238,188) ); m_wndList.SetTextBkColor( RGB(237,238,188) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T(" 姓 名,80; 昵 称,80;手机号码,100; 生日,60; 备 注,150;")); m_wndList.SetGridLines(true); m_bGAddress = true; m_bPAddress = true; if ( m_bHasGAddress && !m_bHasPAddress ) { m_bGAddress = true; m_bPAddress = false; GetDlgItem(IDC_FINDSR_GADDRESS)->EnableWindow(false); GetDlgItem(IDC_FINDSR_PADDRESS)->EnableWindow(false); } if ( !m_bHasGAddress && m_bHasPAddress ) { m_bGAddress = false; m_bPAddress = true; GetDlgItem(IDC_FINDSR_GADDRESS)->EnableWindow(false); GetDlgItem(IDC_FINDSR_PADDRESS)->EnableWindow(false); } #ifdef MOBSET_CARD_VER GetDlgItem(IDC_FINDSR_GADDRESS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FINDSR_PADDRESS)->ShowWindow(SW_HIDE); #endif /* SYSTEMTIME t;GetLocalTime(&t); m_lMon = t.wMonth-1; m_lDay = t.wDay - 1; m_lMon2= t.wMonth-1; m_lDay2= t.wDay - 1; */ m_lMon = 0; m_lDay = 0; m_lMon2= 11; m_lDay2= 30; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_FindSR::SetParam(BOOL bGAddress,BOOL bPAddress) { m_bHasGAddress = bGAddress; m_bHasPAddress = bPAddress; } void DLG_FindSR::OnFindsrGaddress() { if ( !UpdateData(true) ) return ; if ( !m_bGAddress & !m_bPAddress ) { m_bPAddress = true; UpdateData(false); } } void DLG_FindSR::OnFindsrPaddress() { if ( !UpdateData(true) ) return ; if ( !m_bGAddress & !m_bPAddress ) { m_bGAddress = true; UpdateData(false); } } void DLG_FindSR::OnFindsrFind() { if ( !UpdateData(true) ) return ; m_wndList.ShowWindow(SW_HIDE ); m_wndList.DeleteAllItems(); if ( m_pMainFrame ) { m_pMainFrame->FindSR(m_lMon+1,m_lDay+1,m_lMon2+1,m_lDay2+1,m_bGAddress,m_bPAddress,&m_wndList); } m_wndList.ShowWindow(SW_SHOW); CString str; str.Format( _T("查找结果:%d") , m_wndList.GetItemCount() ); m_S_S1.SetWindowText(str); } void DLG_FindSR::OnFindsrAdd() { if ( !m_pMainFrame ) return; long lCount = m_wndList.GetItemCount(); if ( lCount <= 0 ) return ; DLG_FindSR_Send dlg(this); if ( dlg.DoModal()==IDOK ) { Send_User * pUser = new Send_User[lCount]; memset(pUser,0,sizeof(Send_User)*lCount); for ( int i=0 ; iszName)); m_wndList.GetItemText(i,1,pUser[i].szNickName,sizeof(pUser->szNickName)); m_wndList.GetItemText(i,2,pUser[i].szMobile,sizeof(pUser->szMobile)); m_wndList.GetItemText(i,3,pUser[i].szBZ,sizeof(pUser->szBZ)); } if ( m_pMainFrame->m_pFuncView->m_DLGSend.List_New() ) { m_pMainFrame->m_pFuncView->m_DLGSend.SetListSR(true); //为发送生日 m_pMainFrame->m_pFuncView->On_User_List_AddUser(lCount,pUser); this->EndDialog(IDOK); } } } void DLG_FindSR::OnRclickFindsrList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void DLG_FindSR::OnKeydownFindsrList(NMHDR* pNMHDR, LRESULT* pResult) { LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR; *pResult = 0; if ( pLVKeyDow->wVKey == VK_DELETE ) { On_User_Del(); } } void DLG_FindSR::ShowRMenu() { CMenu menu; menu.CreatePopupMenu(); long lCount = m_wndList.GetSelectedCount(); //删除 if ( lCount >0 ) { menu.AppendMenu(MF_STRING , MENU_FINDSR_DEL, _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FINDSR_DEL , _T(" 删 除 ") ); } //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } void DLG_FindSR::On_User_Del() { long lRet = MessageBox( _T("确实要删除选中的用户吗?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2); if ( lRet != IDYES ) return ; long lCount = m_wndList.GetSelectedCount(); long *lDel = new long[lCount+2]; POSITION pos = m_wndList.GetFirstSelectedItemPosition(); long i = 0; while(pos) { lDel[i]= m_wndList.GetNextSelectedItem(pos); i ++; } //倒转删除 m_wndList.ShowWindow( SW_HIDE ); //加快显示的速度 for ( i = lCount ; i>0 ; i-- ) { m_wndList.DeleteItem(lDel[i-1]); //从列表中删除 } m_wndList.ShowWindow( SW_SHOW ); //加快显示的速度 delete lDel; }