// Dlg_Moniter.cpp : 实现文件 // #include "stdafx.h" #include "StoneU_Door.h" #include "Dlg_Frame.h" #include "Dlg_Moniter.h" #include ".\dlg_moniter.h" #include "Global.h" #include "mdlProject.h" #include "Dlg_SetDoor.h" #include "DBConnection.h" #include "Dlg_CardProPerty.h" // CDlg_Moniter 对话框 #define DOOR_W 40 #define DOOR_H 60 extern bool g_bIsWebCall; IMPLEMENT_DYNAMIC(CDlg_Moniter, CDialog) CDlg_Moniter::CDlg_Moniter(CWnd* pParent /*=NULL*/) : CDialog(CDlg_Moniter::IDD, pParent) { m_nNowIndex = 0; InitializeCriticalSection(&m_InSertRecordList); InitializeCriticalSection(&m_InSertDoorList); } CDlg_Moniter::~CDlg_Moniter() { DeleteCriticalSection( &m_InSertRecordList ); DeleteCriticalSection( &m_InSertDoorList ); } void CDlg_Moniter::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_INFO, m_List_Info); DDX_Control(pDX, IDC_LIST_DOOR, m_List_Door); } BEGIN_MESSAGE_MAP(CDlg_Moniter, CDialog) ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1) ON_WM_CTLCOLOR() ON_WM_ERASEBKGND() ON_COMMAND(ID_DOOR_OPENDOOR, OnDoorOpendoor) ON_COMMAND(ID_DOOR_JUSTTIME, OnDoorJusttime) ON_COMMAND(ID_DOOR_DOOROPENDELAYTIME, OnDoorDooropendelaytime) ON_NOTIFY(NM_RCLICK, IDC_LIST_DOOR, OnNMRclickListDoor) ON_COMMAND(ID_RECONNECT, OnReconnect) ON_COMMAND(ID_DOOR_CLOSEDOOR, OnDoorClosedoor) ON_COMMAND(ID_DOOR_RECONNECT, OnDoorReconnect) ON_COMMAND(ID_DOOR_SORT, OnDoorSort) ON_COMMAND(ID_DOOR_SORT2, OnDoorSort2) ON_COMMAND(ID_DOOR_SORT1, OnDoorSort1) ON_NOTIFY(NM_DBLCLK, IDC_LIST_INFO, OnNMDblclkListInfo) ON_COMMAND(ID_MENU_CLEARLIST, OnMenuClearlist) ON_NOTIFY(NM_RCLICK, IDC_LIST_INFO, OnNMRclickListInfo) END_MESSAGE_MAP() // CDlg_Moniter 消息处理程序 BOOL CDlg_Moniter::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 InitList(); m_imageList.Create(32,32,ILC_COLOR24,1,1); CBitmap Bitmap[6]; Bitmap[0].LoadBitmap(IDB_DOOR_CLOSE); m_imageList.Add(&Bitmap[0],RGB(0,0,0)); Bitmap[1].LoadBitmap(IDB_DOOR_OPEN); m_imageList.Add(&Bitmap[1],RGB(0,0,0)); Bitmap[2].LoadBitmap(IDB_DOOR_DISCONNECT); m_imageList.Add(&Bitmap[2],RGB(0,0,0)); Bitmap[3].LoadBitmap(IDB_DOOR_NOMONITER); m_imageList.Add(&Bitmap[3],RGB(0,0,0)); m_List_Door.SetImageList(&m_imageList,LVSIL_NORMAL ); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CDlg_Moniter::SetPos( CRect rect ) { CRect rc1; rc1.left = 0; rc1.right = rc1.left+rect.Width(); rc1.top = 0; rc1.bottom = rc1.top+rect.Height()-4; this->MoveWindow( rc1 ); CRect rc2; rc2.left = rc1.left + 10; rc2.right = rc1.right - 10; rc2.top = 10; rc2.bottom = rc1.top + 130; m_List_Door.MoveWindow( rc2 ); CRect rc3; rc3.left = rc1.left + 10; rc3.right = rc1.right - 10; rc3.top = rc2.bottom+10;; rc3.bottom = rc1.bottom-0; m_List_Info.MoveWindow( rc3 ); } int CDlg_Moniter::InitList(void) { //m_List_Info.InsertColumn( 0, "执行时刻" ); //m_List_Info.InsertColumn( 1, "人员信息" ); //m_List_Info.InsertColumn( 2, "描述" ); //m_List_Info.InsertColumn( 3, "信息" ); //m_List_Info.SetColumnWidth( 0, 120 ); //m_List_Info.SetColumnWidth( 1, 200); //m_List_Info.SetColumnWidth( 2, 200); //m_List_Info.SetColumnWidth( 3, 650); //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色 //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色 //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色 //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色 //m_List_Rule.SetRowHeigt(25); //设置行高度 //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度 //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应 //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色 //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色 m_List_Info.SetHeaderBKColor(213,222,242,8); //设置头部背景色 ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度 //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色 //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色 m_List_Info.InsertColumn(0,g_strIndex,LVCFMT_LEFT,40); m_List_Info.InsertColumn(1,g_strHappenTime,LVCFMT_LEFT,130); m_List_Info.InsertColumn(2,g_strCardNumber,LVCFMT_LEFT,80); m_List_Info.InsertColumn(3,g_strUserInfo,LVCFMT_LEFT,200); m_List_Info.InsertColumn(4,g_strDescribe,LVCFMT_LEFT,150); m_List_Info.InsertColumn(5,g_strInfomation,LVCFMT_LEFT,478); SetWindowLong(m_List_Info.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE); m_List_Info.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格 ::SendMessage(m_List_Info.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); m_List_Info.SetRowHeigt( 20 ); //m_List_Info.SetFontHW( 13,8 ); return 0; } void CDlg_Moniter::OnBnClickedButton1() { //for( int nControllerIndex=0;nControllerIndexm_pThread_Controller[nControllerIndex] ) // { // g_pDlgMain->m_pThread_Controller[nControllerIndex]->m_Controller.nOperterType = OPERATE_DoorOpen; // } //} } HBRUSH CDlg_Moniter::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } BOOL CDlg_Moniter::OnEraseBkgnd(CDC* pDC) { CBrush br1; CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); br1.CreateSolidBrush(g_Color3); pDC->FillRect(rect,&br1); DeleteObject( br1 ); return TRUE; //return CDialog::OnEraseBkgnd(pDC); } bool CDlg_Moniter::IsExist( CString sTime,CString sCardID ) { bool bRet=false; for( int i=0;i<100;i++ ) { if( m_sTime[i]=="" ) { break; } else { if( sTime==m_sTime[i] && sCardID==m_sCard[i] ) { bRet = true; break; } } } if( !bRet ) { m_sTime[m_nNowIndex] = sTime; m_sCard[m_nNowIndex] = sCardID; m_nNowIndex++; if( m_nNowIndex==100 ) m_nNowIndex=0; } return bRet; } void CDlg_Moniter::InsertItemToList( CString sTime,CString sCardID,CString sUserInfo,CString sDoorName,CString sInfo ) { EnterCriticalSection( &m_InSertRecordList ); if( IsExist( sTime,sCardID ) ) { LeaveCriticalSection( &m_InSertRecordList ); return; } if( m_List_Info.GetItemCount()>=2000 ) { m_List_Info.DeleteAllItems(); } CRect rc; m_List_Info.GetWindowRect( rc ); int H = rc.Height(); CString sIndex; int nInsertIndex = m_List_Info.GetItemCount(); sIndex.Format( "%d",nInsertIndex+1 ); m_List_Info.InsertItem( nInsertIndex,sIndex ); m_List_Info.SetItemText( nInsertIndex,1,sTime ); m_List_Info.SetItemText( nInsertIndex,2,sCardID ); m_List_Info.SetItemText( nInsertIndex,3,sUserInfo ); m_List_Info.SetItemText( nInsertIndex,4,sDoorName ); m_List_Info.SetItemText( nInsertIndex,5,sInfo ); if( g_bPassOK(sInfo) ) { m_List_Info.SetItemColor( 0,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemColor( 1,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemColor( 2,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemColor( 3,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemColor( 4,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemColor( 5,nInsertIndex,RGB( 80,128,30 ) ); m_List_Info.SetItemTextColor( 0,nInsertIndex,RGB( 200,200,255 ) ); m_List_Info.SetItemTextColor( 1,nInsertIndex,RGB( 200,200,255 ) ); m_List_Info.SetItemTextColor( 2,nInsertIndex,RGB( 200,200,255 ) ); m_List_Info.SetItemTextColor( 3,nInsertIndex,RGB( 200,200,255 ) ); m_List_Info.SetItemTextColor( 4,nInsertIndex,RGB( 200,200,255 ) ); m_List_Info.SetItemTextColor( 5,nInsertIndex,RGB( 200,200,255 ) ); } else { m_List_Info.SetItemColor( 0,nInsertIndex,RGB( 211,63,45 ) ); m_List_Info.SetItemColor( 1,nInsertIndex,RGB( 211,63,45 ) ); m_List_Info.SetItemColor( 2,nInsertIndex,RGB( 211,63,45 ) ); m_List_Info.SetItemColor( 3,nInsertIndex,RGB( 211,63,45 ) ); m_List_Info.SetItemColor( 4,nInsertIndex,RGB( 211,63,45 ) ); m_List_Info.SetItemColor( 5,nInsertIndex,RGB( 211,63,45 ) ); //m_List_Info.SetItemTextColor( 0,nInsertIndex,RGB( 255,255,255 ) ); //m_List_Info.SetItemTextColor( 1,nInsertIndex,RGB( 255,255,255 ) ); //m_List_Info.SetItemTextColor( 2,nInsertIndex,RGB( 255,255,255 ) ); //m_List_Info.SetItemTextColor( 3,nInsertIndex,RGB( 255,255,255 ) ); //m_List_Info.SetItemTextColor( 4,nInsertIndex,RGB( 255,255,255 ) ); } int H2=20; if( (nInsertIndex+1)*H2=0 && g_Controller[i].sName==sControlName ) { CString sItemText; CString sInsertTemp; for( int nDoorIndex=1;nDoorIndex<9;nDoorIndex++ ) { if( g_Controller[i].sDoorName[nDoorIndex]!="" ) { int nItemSize = m_List_Door.GetItemCount(); int nItemInsert=nItemSize; bool bExist=false; if( nItemSize>0 ) { for( int iItemIndex=0;iItemIndex=0 && g_Controller[i].sName==sControlName ) { CString sItemText; CString sInsertTemp; int nItemSize = m_List_Door.GetItemCount(); int nItemInsert=nItemSize; bool bExist=false; for( int iItemIndex=0;iItemIndex=0 && g_Controller[i].sName==sControlName ) { CString sItemText; CString sInsertTemp; for( int nDoorIndex=1;nDoorIndex<9;nDoorIndex++ ) { if( g_Controller[i].sDoorName[nDoorIndex]!="" ) { int nItemSize = m_List_Door.GetItemCount(); int nItemDel=0; bool bExist=false; for( int iItemIndex=0;iItemIndexm_pThread_Controller[i] ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { CString sTemp1,sTemp2,sTemp3,sTemp4,sTemp5,sTemp6,sTemp7,sTemp8; sTemp1.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[1] ); sTemp2.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[2] ); sTemp3.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[3] ); sTemp4.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[4] ); sTemp5.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[5] ); sTemp6.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[6] ); sTemp7.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[7] ); sTemp8.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[8] ); if( sTemp1==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[1] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp2==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[2] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp3==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[3] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp4==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[4] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp5==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[5] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp6==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[6] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp7==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[7] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } else if( sTemp8==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[8] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_DoorOpen; break; } } } } } void CDlg_Moniter::OnDoorSort() { CStringArray sArrayOnLine,sArrayOffLine; CString sItemText; int nItemSize = m_List_Door.GetItemCount(); if( nItemSize==0 ) return; for( int iItemIndex=0;iItemIndexm_pThread_Controller[i] ) { memset( g_pDlgMain->m_pThread_Controller[i]->m_nDoorStatus,-1,40 ); } } } void CDlg_Moniter::OnDoorSort2() { OnDoorSort(); } void CDlg_Moniter::OnDoorSort1() { OnDoorSort(); } void CDlg_Moniter::OnDoorClosedoor() { } void CDlg_Moniter::OnDoorJusttime() { for( int i=0;im_pThread_Controller[i] ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { CString sTemp1,sTemp2,sTemp3,sTemp4,sTemp5,sTemp6,sTemp7,sTemp8; sTemp1.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[1] ); sTemp2.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[2] ); sTemp3.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[3] ); sTemp4.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[4] ); sTemp5.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[5] ); sTemp6.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[6] ); sTemp7.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[7] ); sTemp8.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[8] ); if( sTemp1==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[1] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp2==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[2] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp3==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[3] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp4==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[4] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp5==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[5] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp6==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[6] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp7==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[7] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } else if( sTemp8==m_sCurrentDoorName ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[8] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_JustTime; break; } } } } } void CDlg_Moniter::OnDoorDooropendelaytime() { int INDEX=0; CDlg_SetDoor Dlg_SetDoor; for( int i=0;im_pThread_Controller[i] ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { CString sTemp1,sTemp2,sTemp3,sTemp4,sTemp5,sTemp6,sTemp7,sTemp8; sTemp1.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[1] ); sTemp2.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[2] ); sTemp3.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[3] ); sTemp4.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[4] ); sTemp5.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[5] ); sTemp6.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[6] ); sTemp7.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[7] ); sTemp8.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[8] ); if( sTemp1==m_sCurrentDoorName ) { INDEX = 1; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp2==m_sCurrentDoorName ) { INDEX = 2; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp3==m_sCurrentDoorName ) { INDEX = 3; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp4==m_sCurrentDoorName ) { INDEX = 4; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp5==m_sCurrentDoorName ) { INDEX = 5; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp6==m_sCurrentDoorName ) { INDEX = 6; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp7==m_sCurrentDoorName ) { INDEX = 7; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } else if( sTemp8==m_sCurrentDoorName ) { INDEX = 8; Dlg_SetDoor.m_nComb_ControlType = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX]-1; Dlg_SetDoor.m_nComb_OpenDelayTime = g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX]; if( Dlg_SetDoor.DoModal()==IDOK ) { g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorDelayTime[INDEX] = Dlg_SetDoor.m_nComb_OpenDelayTime; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nDoorControlType[INDEX] = Dlg_SetDoor.m_nComb_ControlType+1; g_pDlgMain->m_pThread_Controller[i]->m_Controller.bDoorIsSet[INDEX] = true; g_pDlgMain->m_pThread_Controller[i]->m_Controller.nOperterType=OPERATE_ControlAndDelayTime; } break; } } } } } void CDlg_Moniter::OnDoorReconnect() { OnReconnect(); } void CDlg_Moniter::OnReconnect() { for( int i=0;im_pThread_Controller[i] ) { CString sTemp1,sTemp2,sTemp3,sTemp4,sTemp5,sTemp6,sTemp7,sTemp8; sTemp1.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[1] ); sTemp2.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[2] ); sTemp3.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[3] ); sTemp4.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[4] ); sTemp5.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[5] ); sTemp6.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[6] ); sTemp7.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[7] ); sTemp8.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[8] ); if( sTemp1==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp2==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp3==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp4==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp5==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp6==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp7==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } else if( sTemp8==m_sCurrentDoorName ) { if( g_pDlgMain->m_pThread_Controller[i] ) { g_pDlgMain->m_pThread_Controller[i]->StopThread(); delete g_pDlgMain->m_pThread_Controller[i]; g_pDlgMain->m_pThread_Controller[i] = NULL; } if( g_pDlgMain->m_pThread_Controller[i]==NULL ) { g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] ); g_pDlgMain->m_pThread_Controller[i]->StartThread(); } break; } } } } void CDlg_Moniter::OnNMRclickListDoor(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 NMITEMACTIVATE * nmia = (NMITEMACTIVATE *) pNMHDR; POSITION pos = m_List_Door.GetFirstSelectedItemPosition(); if ( pos==NULL ) { CPoint pt; GetCursorPos( &pt ); CMenu menu; menu.LoadMenu(IDR_MENU_DOOR); menu.GetSubMenu(2)->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this); return; } while (pos) { int nItem = m_List_Door.GetNextSelectedItem(pos); m_sCurrentDoorName = m_List_Door.GetItemText( nItem,0 ); CPoint pt; GetCursorPos( &pt ); if( g_FindDoorStatusByDoorName( m_sCurrentDoorName ) ) { CMenu menu; menu.LoadMenu(IDR_MENU_DOOR); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this); } else { CMenu menu; menu.LoadMenu(IDR_MENU_DOOR); menu.GetSubMenu(1)->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this); } } *pResult = 0; } void CDlg_Moniter::OnNMDblclkListInfo(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 int iListCount = m_List_Info.GetItemCount(); POSITION pos = m_List_Info.GetFirstSelectedItemPosition(); int nListSel = m_List_Info.GetNextSelectedItem(pos); if(nListSel>=iListCount || nListSel==-1) { return; } CString sCardNumber,sUserName; sCardNumber = m_List_Info.GetItemText( nListSel,2 ); sUserName = m_List_Info.GetItemText( nListSel,3 ); if( sCardNumber.GetLength()>0 && sUserName.GetLength()<2 ) { CDlg_CardProPerty dlg; dlg.m_nOperate = ADD; dlg.m_sEdit_CardNumber = sCardNumber.TrimLeft(); if( dlg.DoModal()==IDOK ) { CString sIndex; sIndex.Format("%d",dlg.m_nID ); g_pDlgMain->m_pDlg_Card->m_List_Card.InsertItem( 0,sIndex ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,1," "+dlg.m_sEdit_Name ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,2," "+dlg.m_sEdit_CardNumber ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,3," "+dlg.m_sEdit_Class ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,4," "+dlg.m_sEdit_JobNumber ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,5," "+dlg.m_sEdit_Remarks ); for( int i=0;im_pDlg_Card->m_List_Card.SetItemText( nListSel,1," "+dlg.m_sEdit_Name ); // g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( nListSel,2," "+dlg.m_sEdit_CardNumber ); // g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( nListSel,3," "+dlg.m_sEdit_Class ); // g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( nListSel,4," "+dlg.m_sEdit_JobNumber ); // g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( nListSel,5," "+dlg.m_sEdit_Remarks ); //} } *pResult = 0; } void CDlg_Moniter::OnMenuClearlist() { m_List_Info.DeleteAllItems(); } void CDlg_Moniter::OnNMRclickListInfo(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 if( m_List_Info.GetItemCount()==0 ) return; CPoint pt; GetCursorPos( &pt ); CMenu menu; menu.LoadMenu(IDR_MENU_DOOR); menu.GetSubMenu(3)->TrackPopupMenu(TPM_LEFTALIGN,pt.x-40,pt.y-10,this); *pResult = 0; }