⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configframe.cpp

📁 是自己开发的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void ConfigFrame::OnListFileUnsel(wxListEvent &event){	long selItem = event.GetIndex();		listCtrlReport->SetItemImage(selItem,winInfo[selItem].isCheck);	curSel = -1;}void ConfigFrame::OnPaint(wxPaintEvent& event){}void ConfigFrame::OnMyButtons(wxCommandEvent &event){	wxCSConv conv(_("gb2312"));    switch(event.GetId())    {		case ID_LOGIN:		{			ShowLoginPage();			break;		}		case ID_RESTART:		{			system("init 6");			break;		}		case ID_SHUTDOWN:		{			system("init 0");			break;		}		case ID_NET:		{			ShowNetworkPage();			break;		}		case ID_SELALL:		{			int i=0;			if( (buttonSel->GetLabel()).Contains(wxString("全选",conv)) )			{				for(i=0;i<MAX_WIN;i++){					if(winInfo[i].port > 0)					{						if(winInfo[i].isCheck ==0)							winInfo[i].isCheck = 2;					}					listCtrlReport->SetItemImage(i,winInfo[i].isCheck);				}				buttonSel->SetLabel(wxString("全否",conv));			}else{				buttonSel->SetLabel(wxString("全选",conv));				for(i=0;i<MAX_WIN;i++){					if(winInfo[i].port > 0)					{						winInfo[i].isCheck = 0;					}					listCtrlReport->SetItemImage(i,winInfo[i].isCheck);				}			}						break;		}		case ID_OUTPUT:		{			struct sockaddr_in client_addr;			int    listenfd;			memset(&client_addr, 0, sizeof(client_addr));						char szSQL[256];			int selNums =0;			MYSQL_RES	*res ;			int devCount;			memset(szSQL,0,sizeof(szSQL));			//发送socket请求			listenfd = socket(AF_INET, SOCK_STREAM, 0);			if(listenfd < 0)			{				return;			}			client_addr.sin_family = AF_INET;			if(m_radioHAlign->GetValue() == 1)				client_addr.sin_port   = htons(5100);			else				client_addr.sin_port   = htons(5101);			wxString str= odc2->GetValue();			inet_aton((const char *)str.mb_str(wxConvUTF8), &client_addr.sin_addr);			if(connect(listenfd, (struct sockaddr*)&client_addr, sizeof(struct sockaddr)) == -1)			{				wxMessageBox(wxString("连接服务器失败!",conv),wxString("错误",conv),wxOK|wxCENTRE,this,460,300);				close(listenfd);				return;			}			selNums=0;			for(int i=0;i<MAX_WIN;i++)			{				if(winInfo[i].port > 0 && winInfo[i].isCheck)				{					selNums ++;					listCtrlReport->SetItemBackgroundColour(i,(wxColour &)*wxGREEN);					sprintf(szSQL,"select pid from serverinfolist where server_type=%d and server_ip='%s' and port=%d",winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].port);					if ( ! mysql_query( myData, szSQL ) ) 					{						res = mysql_store_result( myData ) ;						devCount = (int) mysql_num_rows( res ) ;						if(devCount == 0)							sprintf(szSQL,"insert into serverinfolist(server_type,server_ip,url,device,port,by1,by2) values(%d,'%s','%s','%s',%d,'%s',%d);",winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].url,winInfo[i].device,winInfo[i].port,winInfo[i].by1,winInfo[i].by2);						else							sprintf(szSQL,"update serverinfolist set url='%s',device='%s',by1='%s',by2=%d where server_type=%d and server_ip='%s' and port=%d;",winInfo[i].url,winInfo[i].device,winInfo[i].by1,winInfo[i].by2,winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].port);						mysql_query( myData, szSQL );						if(res)							mysql_free_result(res);					}										send(listenfd,(char *)&pRequest[i],sizeof(TRequest),0);										listCtrlReport->SetItemBackgroundColour(i,wxColor(241,243,250));					listCtrlReport->SetItemImage(i,0);					winInfo[i].isCheck = 0;				}			}			if(selNums ==0)			{				wxMessageBox(wxString("请选择需要输出的图像!",conv),wxString("警告",conv),wxOK|wxCENTRE,this,460,300);			}			if(listenfd)				close(listenfd);			buttonSel->SetLabel(wxString("全选",conv));			break;		}		default:			break;    }}void ConfigFrame::OnSelectIPList(wxCommandEvent &event){	wxCSConv conv(_("gb2312"));	// 只是用来初始化 list 列表的显示	//listCtrlReport->SetBackgroundColour(*wxWHITE);	switch(event.GetId())    {		case ID_IPLISTCHANGE:		{			//初始化操作			memset(&pRequest,0,sizeof(pRequest));			memset(&winInfo,0,sizeof(winInfo));			curSel = -1;			listCtrlReport->DeleteAllItems();			wxString str= odc2->GetValue();			if(!str.Contains(wxString("服务器IP地址",conv)))			{								MYSQL_ROW	row ;				MYSQL_RES	* res;				wxString strName;				char szSQL[256];				memset(szSQL,0,sizeof(szSQL));				if(m_radioHAlign->GetValue() == 1)				{					for(int i=0;i<MAX_WIN;i++)					{						strName.Printf(wxString("[第 %d 屏幕]",conv),i+1);						listCtrlReport->InsertItem(i,0);												listCtrlReport->SetItem(i,1,strName);					}					sprintf(szSQL,"select url,device,port,by2,by1 from serverinfolist where server_type='2' and server_ip='%s' order by pid",(const char *)str.mb_str(wxConvUTF8));				}else{					for(int i=0;i<16;i++)					{						strName.Printf(wxString("[第 %d 窗口]",conv),i+1);						listCtrlReport->InsertItem(i,0);												listCtrlReport->SetItem(i,1,strName);					}					sprintf(szSQL,"select url,device,port,by2,by1 from serverinfolist where server_type='3' and server_ip='%s' order by pid",(const char *)str.mb_str(wxConvUTF8));				}								if ( ! mysql_query( myData, szSQL ) ) {					res = mysql_store_result( myData ) ;					while ( (row = mysql_fetch_row( res )) ) {						listCtrlReport->SetItem(atoi(row[2])-1,2,ConvertFromStrs(row[4]));						listCtrlReport->SetItem(atoi(row[2])-1,3,ConvertFromStrs(row[0]));						memset(&pRequest[atoi(row[2]) -1],0,sizeof(TRequest));												memset(&winInfo[atoi(row[2]) -1],0,sizeof(TWinInfo));						pRequest[atoi(row[2]) -1].code = atoi(row[2]);						sprintf(pRequest[atoi(row[2]) -1].m_strText,"%s" , row[0]);						if(m_radioHAlign->GetValue() == 1)							winInfo[atoi(row[2]) -1].server_type = 2;						else							winInfo[atoi(row[2]) -1].server_type = 3;						sprintf(winInfo[atoi(row[2]) -1].by1,"%s",row[4]);						sprintf(winInfo[atoi(row[2]) -1].server_ip,"%s",(const char *)(odc2->GetValue()).mb_str(wxConvUTF8));						sprintf(winInfo[atoi(row[2]) -1].url,"%s",row[0]);						sprintf(winInfo[atoi(row[2]) -1].device,"%s",row[1]);						winInfo[atoi(row[2]) -1].port = atoi(row[2]);						winInfo[atoi(row[2]) -1].by2 = atoi(row[3]);					}					if(res)						mysql_free_result(res);				}			}else			{				curSel = -1;				memset(&pRequest,0,sizeof(pRequest));				listCtrlReport->DeleteAllItems();			}			break;		}		default:			break;    }}void ConfigFrame::OnCheckBox(wxCommandEvent &event){	curSel = -1;	wxCSConv conv(_("gb2312"));	memset(&pRequest,0,sizeof(pRequest));	listCtrlReport->DeleteAllItems();	m_arrItems.Clear();	m_arrItems.Add( wxString("服务器IP地址列表...",conv) );	MYSQL_ROW	row ;	MYSQL_RES	* res;	int devCount;	char szSQL[256];	memset(szSQL,0,sizeof(szSQL));	switch(event.GetId())    {				case ID_CHECKBOX1:		{						if(m_radioHAlign->IsChecked())			{				m_radioHAlign->SetValue(1);				m_radioVAlign->SetValue(0);					strcpy(szSQL,"select server_ip from serveriplist where server_code=2");					if ( ! mysql_query( myData, szSQL ) ) {						res = mysql_store_result( myData ) ;						devCount = (int) mysql_num_rows( res ) ; 						while ( (row = mysql_fetch_row( res )) ) {							m_arrItems.Add(wxString(row[0],wxConvUTF8));						}						if(res)							mysql_free_result(res);					}					if(odc2)						delete odc2;					odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString,													wxPoint(200,97), wxDefaultSize,													m_arrItems,													wxNO_BORDER | wxCB_READONLY //(long)0 //												   );					odc2->SetSelection(0);										odc2->SetBackgroundColour(wxColor(241,243,250));					for(int i=0;i<MAX_WIN;i++)						winInfo[i].server_type = 2;			}else			{				m_radioHAlign->SetValue(0);				m_radioVAlign->SetValue(1);				strcpy(szSQL,"select server_ip from serveriplist where server_code=3");				if ( ! mysql_query( myData, szSQL ) ) {					res = mysql_store_result( myData ) ;					devCount = (int) mysql_num_rows( res ) ; 					while ( (row = mysql_fetch_row( res )) ) {						m_arrItems.Add(wxString(row[0],wxConvUTF8));					}					if(res)						mysql_free_result(res);				}				if(odc2)					delete odc2;				odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString,												wxPoint(200,97), wxDefaultSize,												m_arrItems,												wxNO_BORDER | wxCB_READONLY //(long)0 //											   );				odc2->SetSelection(0);								odc2->SetBackgroundColour(wxColor(241,243,250));				for(int i=0;i<MAX_WIN;i++)						winInfo[i].server_type = 3;			}			break;		}		case ID_CHECKBOX2:		{						if(m_radioVAlign->IsChecked())			{				m_radioVAlign->SetValue(1);				m_radioHAlign->SetValue(0);					strcpy(szSQL,"select server_ip from serveriplist where server_code=3");				if ( ! mysql_query( myData, szSQL ) ) {					res = mysql_store_result( myData ) ;					devCount = (int) mysql_num_rows( res ) ; 					while ( (row = mysql_fetch_row( res )) ) {						m_arrItems.Add(wxString(row[0],wxConvUTF8));					}					if(res)						mysql_free_result(res);				}				if(odc2)					delete odc2;				odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString,												wxPoint(200,97), wxDefaultSize,												m_arrItems,												wxNO_BORDER | wxCB_READONLY //(long)0 //											   );				odc2->SetSelection(0);								odc2->SetBackgroundColour(wxColor(241,243,250));				for(int i=0;i<MAX_WIN;i++)						winInfo[i].server_type = 3;							}else			{				m_radioVAlign->SetValue(0);				m_radioHAlign->SetValue(1);				strcpy(szSQL,"select server_ip from serveriplist where server_code=2");				if ( ! mysql_query( myData, szSQL ) ) {					res = mysql_store_result( myData ) ;					devCount = (int) mysql_num_rows( res ) ; 					while ( (row = mysql_fetch_row( res )) ) {						m_arrItems.Add(wxString(row[0],wxConvUTF8));					}					if(res)						mysql_free_result(res);				}				if(odc2)					delete odc2;				odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString,												wxPoint(200,97), wxDefaultSize,												m_arrItems,												wxNO_BORDER | wxCB_READONLY //(long)0 //											   );				odc2->SetSelection(0);								odc2->SetBackgroundColour(wxColor(241,243,250));				for(int i=0;i<MAX_WIN;i++)						winInfo[i].server_type = 2;			}			break;		}		default:			break;    }}ConfigFrame::~ConfigFrame(){}void ConfigFrame::ShowListPage(){    m_sizerFrame->Show(loginPage,0,0);    m_sizerFrame->Show(networkPage,0,0);    m_sizerFrame->Layout();	m_panel->Show(0);}void ConfigFrame::ShowLoginPage(){    m_sizerFrame->Show(loginPage,1,0);    m_sizerFrame->Show(networkPage,0,0);    m_sizerFrame->Layout();	m_panel->Show(1);	loginPage->pEdit3->Clear();}void ConfigFrame::ShowNetworkPage(){    m_sizerFrame->Show(loginPage,0,0);    m_sizerFrame->Show(networkPage,1,0);    m_sizerFrame->Layout();	m_panel->Show(1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -