📄 paramodeformview.cpp
字号:
*/ 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 + -