// ClientIPFrom.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "ClientIPForm.h" #include "MyMdi.H" #include "InputPsw.h" #include "mysqldata.h" #include "InputPsw.h" #include "ShowHistoryReg.h" #include "SetClientIPDlg.h" #include "InputDate.h" #include "PayOutSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom IDC_STATIC2 IMPLEMENT_DYNCREATE(ClientIPFrom, CFormView) ClientIPFrom::ClientIPFrom() : CFormView(ClientIPFrom::IDD) { //{{AFX_DATA_INIT(ClientIPFrom) m_filter = _T(""); //}}AFX_DATA_INIT } ClientIPFrom::~ClientIPFrom() { } void ClientIPFrom::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(ClientIPFrom) DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_CBString(pDX, IDC_COMBO1, m_filter); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(ClientIPFrom, CFormView) //{{AFX_MSG_MAP(ClientIPFrom) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto) ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto) ON_BN_CLICKED(IDC_BUTmoney, OnBUTmoney) ON_BN_CLICKED(IDC_BTNaddsp, OnBTNaddsp) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2) ON_BN_CLICKED(IDC_BUTimportphoto2, OnBUTimportphoto2) ON_BN_CLICKED(IDC_BUTmoney4, OnBUTmoney4) ON_BN_CLICKED(IDC_BUTmoney5, OnBUTmoney5) //}}AFX_MSG_MAP ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList1) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom diagnostics #ifdef _DEBUG void ClientIPFrom::AssertValid() const { CFormView::AssertValid(); } void ClientIPFrom::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom message handlers void ClientIPFrom::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); m_static1.SetFont (&g_titlefont); m_List1.SetHeadings("企业名,100;店名,100;域名,100;IP,100;刷新时间,100;状态,150;运行到,150;备份日志,200;备注,200;申请日期,100;类别,100;权限,100" ); m_List1.LoadColumnInfo (104); m_combo1.GetWindowRect (rc2); ScreenToClient(rc2); rc2.bottom +=200; m_combo1.MoveWindow (rc2); OnButton1(); } void ClientIPFrom::FillGrid(BOOL bStatus) { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; if(m_filter.IsEmpty ()) { for(ii=0; iiSendMessage(WM_CLOSE); } void ClientIPFrom::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void ClientIPFrom::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL ClientIPFrom::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class try { if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnButton1(); return 1; case 0x43: // copy if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_COPY); return TRUE; } break; case 0x56: //Ctrl + V: if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_PASTE); return TRUE; } break; case 0x58: // cut if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_CUT); return TRUE; } break; case 0x5A: //undo case 0x59: //redo if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_UNDO); return TRUE; } break; } } return CFormView::PreTranslateMessage(pMsg); } catch(...) { } } void ClientIPFrom::OnBTNaddsp() { } extern void ConvertToPrice(CString &str); void ClientIPFrom::OnButton1() // 查询; { // TODO: Add your control notification handler code here if(1) { MyLock lock("xiaoaccessdbmsg"); CRecordset myset(&g_db); CString sql="select count(*) as cot from clientip"; myset.Open (CRecordset::forwardOnly, sql); myset.GetFieldValue ("cot", sql); myset.Close(); m_List1array.SetSize(atol(sql) , 1 ); CRstClientIP rsSt; rsSt.Open(); DWORD ii=0; while(!rsSt.IsEOF()) { m_List1array.ElementAt (ii).RemoveAll (); m_List1array.ElementAt (ii).Add(rsSt.m_enterprisename) ; m_List1array.ElementAt (ii).Add(rsSt.m_branchname) ; m_List1array.ElementAt (ii).Add(rsSt.m_name) ; m_List1array.ElementAt (ii).Add(rsSt.m_ip) ; m_List1array.ElementAt (ii).Add(rsSt.m_datetime) ; m_List1array.ElementAt (ii).Add(rsSt.m_regcode) ; m_List1array.ElementAt (ii).Add(rsSt.m_regcode2) ; m_List1array.ElementAt (ii).Add(rsSt.m_log) ; m_List1array.ElementAt (ii).Add(rsSt.m_bz) ; m_List1array.ElementAt (ii).Add(rsSt.m_applydate) ; m_List1array.ElementAt (ii).Add(rsSt.m_bmain) ; m_List1array.ElementAt (ii).Add(rsSt.m_rights) ; ii++; rsSt.MoveNext();if(m_List1array.GetSize ()<=ii)break; } rsSt.Close();m_List1array.SetSize(ii , 1 ); } UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(); } void ClientIPFrom::OnBUTshowphoto() // 授权加时; { POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要加时的项目!", MB_ICONINFORMATION); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 2); CString name=m_List1.GetItemText (iItem, 1); CString str; str="客人:'"+name+"', 正确吗?"; if(AfxMessageBox(str, MB_YESNO)!=IDYES)return; InputPsw dlg; if(dlg.DoModal()!=IDOK)return; CString regcode2; InputDate datedlg; datedlg.DoModal(); regcode2=datedlg.m_date.Format("%Y-%m-%d"); if(datedlg.m_check1) regcode2="永久"; CString sql; sql= "update clientip set [regcode2]='"+regcode2+"' where [name]='"+account+"'"; MyExecuteSQL(&g_db, sql); OnButton1(); } void ClientIPFrom::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); CString m_name=m_List1.GetItemText (iItem, 2); CString ip=m_List1.GetItemText (iItem, 3); SetClientIPDlg dlg; dlg.m_mode =1; dlg.m_name =m_name; dlg.m_ip =ip; if(dlg.DoModal ()==IDOK) OnButton1(); *pResult = 0; } void ClientIPFrom::OnBUTimportphoto() // 添加域名; { // TODO: Add your control notification handler code here SetClientIPDlg dlg; POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos!=NULL) { int iItem=m_List1.GetNextSelectedItem(pos); dlg.m_enterprisename=m_List1.GetItemText (iItem, 0); dlg.m_branchname=m_List1.GetItemText (iItem, 1); dlg.m_name=m_List1.GetItemText (iItem, 2); } if(dlg.DoModal ()==IDOK) OnButton1(); } void ClientIPFrom::OnBUTimportphoto2() // 清除IP; { POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 2); CString sql; sql= "update clientip set [ip]='' where [name]='"+account+"'"; MyExecuteSQL(&g_db, sql); OnButton1(); } void ClientIPFrom::OnButton2() // 删除用户; { POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要删除的项目!", MB_ICONINFORMATION); return; } if(AfxMessageBox("警告:删除后将不可恢复, 继续吗?", MB_YESNO|MB_ICONSTOP)!=IDYES)return; InputPsw dlg; if(dlg.DoModal()!=IDOK)return; int iItem=m_List1.GetNextSelectedItem(pos); CString account=m_List1.GetItemText (iItem, 2); CString sql; sql= "delete from clientip where [name]='"+account+"'"; MyExecuteSQL(&g_db, sql); OnButton1(); } void ClientIPFrom::OnCustomdrawList1 ( NMHDR* pNMHDR, LRESULT* pResult ) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); // Take the default processing unless we set this to something else below. *pResult = 0; // First thing - check the draw stage. If it's the control's prepaint // stage, then tell Windows we want messages for every item. if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { // This is the prepaint stage for an item. Here's where we set the // item's text color. Our return value will tell Windows to draw the // item itself, but it will use the new color we set here. // We'll cycle the colors through red, green, and light blue. CString runtime=m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (5); CString registertime=m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (6); if(runtime.IsEmpty ()==0) { CString left,right; int pos=runtime.Find ("能运行:"); if(pos!=-1) { left=runtime.Left (pos); right=runtime.Right (runtime.GetLength ()-pos-7); left.Replace ("已运行:", ""); left.TrimRight (); int year,month,day; pos=left.Find ("年"); year=atoi(left.Left (pos)); left=left.Right (left.GetLength ()-pos-2); pos=left.Find ("月"); month=atoi(left.Left (pos)); left=left.Right (left.GetLength ()-pos-2); pos=left.Find ("日"); day=atoi(left.Left (pos)); left=right; int year2,month2,day2; pos=left.Find ("年"); year2=atoi(left.Left (pos)); left=left.Right (left.GetLength ()-pos-2); pos=left.Find ("月"); month2=atoi(left.Left (pos)); left=left.Right (left.GetLength ()-pos-2); pos=left.Find ("日"); day2=atoi(left.Left (pos)); DWORD tm1=year*365+month*30+day; DWORD tm2=year2*365+month2*30+day2; long dt=tm2-tm1; if(dt<15 || tm1>=tm2) pLVCD->clrText = RGB(220,0,0); else pLVCD->clrText = RGB(20,133,20); if(registertime.GetLength ()==10) { CTime tm(atoi(registertime.Mid (0,4)),atoi(registertime.Mid (5,2)),atoi(registertime.Mid (8,2)),0,0,0); CTime curtm=CTime::GetCurrentTime (); CTimeSpan dt=tm-curtm; if(dt.GetDays ()>10) pLVCD->clrText = RGB(20,133,20); else pLVCD->clrText = RGB(220,0,0); if(tmclrText = RGB(220,0,0); } } } // Tell Windows to paint the control itself. *pResult = CDRF_DODEFAULT; } } void ClientIPFrom::OnBUTmoney() // 未知客户; { // TODO: Add your control notification handler code here PayOutSet dlg; dlg.DoModal(); } void ClientIPFrom::OnBUTmoney4() // 到期用户; { // TODO: Add your control notification handler code here m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; for(ii=0; ii=tm2) bOK=1; else bOK=0; if(registertime.GetLength ()==10) { CTime tm(atoi(registertime.Mid (0,4)),atoi(registertime.Mid (5,2)),atoi(registertime.Mid (8,2)),0,0,0); CTime curtm=CTime::GetCurrentTime (); CTimeSpan dt=tm-curtm; if(dt.GetDays ()>10) bOK=0; else bOK=1; if(tm=tm2) bOK=1; else bOK=0; if(registertime.GetLength ()==10) { CTime tm(atoi(registertime.Mid (0,4)),atoi(registertime.Mid (5,2)),atoi(registertime.Mid (8,2)),0,0,0); CTime curtm=CTime::GetCurrentTime (); CTimeSpan dt=tm-curtm; if(dt.GetDays ()>10) bOK=0; else bOK=1; if(tm