// DLG_FindNS.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_FindNS.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_FindNS dialog #include "MainFrm.h" #include "DLG_FindSR_Send.h" DLG_FindNS::DLG_FindNS(CWnd* pParent /*=NULL*/,long lFindType) : CDialog(DLG_FindNS::IDD, pParent) { //{{AFX_DATA_INIT(DLG_FindNS) m_lMon = -1; m_lMon2 = -1; m_lDay = -1; //}}AFX_DATA_INIT m_pMainFrame = (CMainFrame*)pParent; m_lFindType = lFindType; } void DLG_FindNS::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_FindNS) DDX_Control(pDX, IDC_FINDNS_MON2, m_L_Mon2); DDX_Control(pDX, IDC_FINDNS_MON, m_L_Mon); DDX_Control(pDX, IDC_FINDNS_DAY, m_L_Day); DDX_Control(pDX, IDC_FINDNS_S1, m_S_S1); DDX_Control(pDX, IDC_FINDNS_LIST, m_wndList); DDX_CBIndex(pDX, IDC_FINDNS_MON, m_lMon); DDX_CBIndex(pDX, IDC_FINDNS_MON2, m_lMon2); DDX_CBIndex(pDX, IDC_FINDNS_DAY, m_lDay); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_FindNS, CDialog) //{{AFX_MSG_MAP(DLG_FindNS) ON_NOTIFY(NM_RCLICK, IDC_FINDNS_LIST, OnRclickFindnsList) ON_NOTIFY(LVN_KEYDOWN, IDC_FINDNS_LIST, OnKeydownFindnsList) ON_BN_CLICKED(IDC_FINDNS_FIND, OnFindnsFind) ON_BN_CLICKED(IDC_FINDNS_ADD, OnFindnsAdd) //}}AFX_MSG_MAP ON_COMMAND( MENU_FINDNS_DEL , On_User_Del ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_FindNS message handlers BOOL DLG_FindNS::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(); switch (m_lFindType) { case 1: m_wndList.SetHeadings(_T(" 姓 名,80; 车 牌,80;手机号码,100;提醒日,60; 到期日,150;")); break; case 0: default: m_wndList.SetHeadings(_T(" 姓 名,80; 车 牌,80;手机号码,100;提醒日,60; 备 注,150;")); break; } m_wndList.SetGridLines(true); m_lMon = 0; m_lMon2= 9; int i=0; CString strTemp; switch (m_lFindType) { case 1: for ( i=0 ; i<100 ; i++ ) { strTemp.Format( _T("%d"), i+1 ); m_L_Day.AddString(strTemp); } m_lDay=14; m_L_Mon.ResetContent(); m_L_Mon2.ResetContent(); for ( i=0 ; i<12 ; i++ ) { strTemp.Format( _T("%d月"),i+1); m_L_Mon.AddString(strTemp); m_L_Mon2.AddString(strTemp); } m_lMon = 0; m_lMon2= 11; break; case 0: default: GetDlgItem(IDC_FINDNS_DAY_S1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FINDNS_DAY)->ShowWindow(SW_HIDE); break; } UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_FindNS::OnRclickFindnsList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void DLG_FindNS::OnKeydownFindnsList(NMHDR* pNMHDR, LRESULT* pResult) { LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR; *pResult = 0; if ( pLVKeyDow->wVKey == VK_DELETE ) { On_User_Del(); } } void DLG_FindNS::ShowRMenu() { CMenu menu; menu.CreatePopupMenu(); long lCount = m_wndList.GetSelectedCount(); //删除 if ( lCount >0 ) { menu.AppendMenu(MF_STRING , MENU_FINDNS_DEL, _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FINDNS_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_FindNS::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; } void DLG_FindNS::OnFindnsFind() { if ( !UpdateData(true) ) return ; if ( m_lMon2FindBX(m_lMon+1,m_lMon2+1,m_lDay+1,&m_wndList); break; case 0: default: m_pMainFrame->FindNS(m_lMon+3,m_lMon2+3,&m_wndList); break; } } m_wndList.ShowWindow(SW_SHOW); CString str; str.Format( _T("查找结果:%d") , m_wndList.GetItemCount() ); m_S_S1.SetWindowText(str); } void DLG_FindNS::OnFindnsAdd() { if ( !m_pMainFrame ) return; long lCount = m_wndList.GetItemCount(); if ( lCount <= 0 ) return ; DLG_FindSR_Send dlg(this,1+m_lFindType); 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); } } }