268 lines
6.2 KiB
C++
268 lines
6.2 KiB
C++
// 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 ; 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); //Ϊ·¢ËÍÉúÈÕ
|
|
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;
|
|
|
|
}
|