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

📄 paramodeformview.cpp

📁 一个串口通信的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
*/		m_dbgrid.SetText(sText);
//	}
	m_dbgrid.SetCol(oldcol);
	m_dbgrid.SetFocus();					//将焦点置回到grid控件
	
}

void CParaModeFormView::OnKillfocusList1() 
{
	m_ListBox.ResetContent();
	m_ListBox.ShowWindow(SW_HIDE);
}

void CParaModeFormView::OnDestroy() 
{
	if(m_dbgrid.GetDataChanged())
	{
		if(m_dbgrid.GetAddNewMode() == 0) // 0 - No AddNew 
		//触发UnboundWriteData事件记录之
		m_dbgrid.SetBookmark(m_dbgrid.GetBookmark());
		else // 1 - AddNew Current 2 - AddNew Pending 
		//触发UnboundAddData事件记录之
		m_dbgrid.SetRow(m_dbgrid.GetRow());
	}

	//释放资源
	for(int i=0;i<this->m_aData.GetSize();i++)
	{
		CStringArray *sa;
		sa=(CStringArray *)m_aData.GetAt(i);
		sa->RemoveAll();
		delete sa;
	}
	m_aData.RemoveAll();

	CFormView::OnDestroy();
}

void CParaModeFormView::OnSave() 
{
	if(m_bAllowSave==TRUE)
	{
		CFile file;
		file.Open(filename,CFile::modeWrite);
		file.SetLength(0);
		for(int i=0;i<m_aData.GetSize();i++)
		{
			CString str="";
			CStringArray *ar;
			ar=m_aData.GetAt(i);
			for(int j=0;j<ar->GetSize();j++)
			{
				CString temp;
				temp=ar->GetAt(j);
//				TRIM(temp);
				str+=temp+",";
			}
			if(str.GetLength()>1)str=str.Left(str.GetLength()-1);
			str+="\r\n";
			file.Write(str,str.GetLength());
		}
		file.Close();
	}
}

void CParaModeFormView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	if(m_dbgrid.m_hWnd)
	{
		CRect rect,dbrect,btnrect1,btnrect2;
		this->GetClientRect(&rect);
		dbrect=rect;
		dbrect.right-=60;

		btnrect1.top=20;btnrect1.left=rect.right-60+5;btnrect1.right=rect.right-5;btnrect1.bottom=btnrect1.top+21;
		btnrect2.top=20+40;btnrect2.left=rect.right-60+5;btnrect2.right=rect.right-5;btnrect2.bottom=btnrect2.top+21;

		m_dbgrid.MoveWindow(&dbrect);
		CButton * pbtn;
		pbtn=(CButton * )this->GetDlgItem(IDT_OK);
		pbtn->MoveWindow(&btnrect1);
		pbtn=(CButton * )this->GetDlgItem(IDCANCEL);
		pbtn->MoveWindow(&btnrect2);
	}
}

void CParaModeFormView::OnInitialUpdate() 
{
	TVisualFormView::OnInitialUpdate();
	CMainFrame *pframe=(CMainFrame *)AfxGetApp()->m_pMainWnd;
	DWORD id = pframe->m_Framework.Get(this)->GetID();
	switch(id)
	{
	case 5:
		type=1;
		break;
	case 6:
		type=2;
		break;
	case 7:
		type=3;
		break;
	case 8:
		type=4;
		break;
	default:
		type=1;
		break;
	}


	switch(type)
	{
	case 1:			//现场仪表情况
		{
			filename=SYS_PATH+"misc\\YB.par";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("仪表ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("仪表名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("仪表类型");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("COM口地址");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetAdd(4);
			Col.SetCaption("仪表地址");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetAdd(5);
			Col.SetCaption("安装地点");
			Col.SetVisible(TRUE);
			Col.SetWidth(120);

		}
		break;
	case 2:			//现场监测点
		{
			filename=SYS_PATH+"misc\\CD.par";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("测点ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("测点名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("仪表名称.ID");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("通道号");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);
		}
		break;
	case 3:			//仪表参数名称
		{			
			filename=SYS_PATH+"misc\\CS.PAR";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("仪表类型");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("参数名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("参数地址(十六进制)");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("数据类型");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(4);
			Col.SetCaption("修改");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);
		}
		break;

	case 4:			//实时数据采集参数维护
		{			
			filename=SYS_PATH+"misc\\REALTIME.PAR";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("信号ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("测点名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("参数(信号)名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("启用");
			Col.SetVisible(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetAdd(4);
			Col.SetCaption("信号单位");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(5);
			Col.SetCaption("预警");
			Col.SetVisible(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetAdd(6);
			Col.SetCaption("预警下限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(7);
			Col.SetCaption("预警上限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(8);
			Col.SetCaption("数据保存周期");
			Col.SetVisible(TRUE);
			Col.SetWidth(60);
		}
		break;
	}
	CStringArray * array=NULL;
	array=::GetLineFromFile(filename);
	m_aData.SetSize(array->GetSize());
	for(int i=0;i<array->GetSize();i++)
	{
		CString str;
		str=array->GetAt(i);
		CStringArray * elem;
		elem=split(str,",");
/*		if(type==2)
		{
			temp=new CStringArray();
			temp->SetSize(41);for(int k=0;k<41;k++)temp->SetAt(k,"");
			for(int j=0;j<elem->GetSize()&&j<41;j++)
			{
				temp->SetAt(j,elem->GetAt(j));
			}
			m_aData.SetAt(i,temp);
			delete elem;
		}
		else
		{
*/			this->m_aData.SetAt(i,elem);
//		}
	}
	this->m_iMaxRow=i;
	delete array;
	m_dbgrid.Refresh();
	
}

void CParaModeFormView::OnCancel() 
{
	// TODO: Add extra cleanup here
	
//	TVisualFormView::OnCancel();
}

BOOL CParaModeFormView::PreTranslateMessage(MSG* pMsg) 
{
		
	if (pMsg->message==WM_KEYDOWN)
	{
		if(pMsg->wParam==VK_ESCAPE)
		{
			return TRUE;
		}
	}
	return TVisualFormView::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

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