CorpSms/DLG_FindNS.cpp

258 lines
5.8 KiB
C++
Raw Permalink Normal View History

2025-02-27 16:58:16 +08:00
// 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();
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>б<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>б<EFBFBD>
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) ); //<2F><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>б<EFBFBD>
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(" <20><> <20><>,80; <20><> <20><>,80;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,60; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,150;"));
break;
case 0:
default:
m_wndList.SetHeadings(_T(" <20><> <20><>,80; <20><> <20><>,80;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,60; <20><> ע,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<><64>"),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();
//ɾ<><C9BE>
if ( lCount >0 )
{
menu.AppendMenu(MF_STRING , MENU_FINDNS_DEL, _T(" ɾ <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FINDNS_DEL , _T(" ɾ <20><> ") );
}
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
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("ȷʵҪɾ<EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),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 ++;
}
//<2F><>תɾ<D7AA><C9BE>
m_wndList.ShowWindow( SW_HIDE ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
for ( i = lCount ; i>0 ; i-- )
{
m_wndList.DeleteItem(lDel[i-1]); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
}
m_wndList.ShowWindow( SW_SHOW ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
delete lDel;
}
void DLG_FindNS::OnFindnsFind()
{
if ( !UpdateData(true) )
return ;
if ( m_lMon2<m_lMon )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ݲ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڿ<EFBFBD>ʼ<EFBFBD>·ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONWARNING );
return ;
}
m_wndList.ShowWindow(SW_HIDE );
m_wndList.DeleteAllItems();
if ( m_pMainFrame )
{
switch ( m_lFindType )
{
case 1:
m_pMainFrame->FindBX(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("<EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD>:%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 ; i<lCount;i++ )
{
m_wndList.GetItemText(i,0,pUser[i].szName,sizeof(pUser->szName));
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); //Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pMainFrame->m_pFuncView->On_User_List_AddUser(lCount,pUser);
this->EndDialog(IDOK);
}
}
}