(4)将天线方向图数据逐行显示在表格控件中。
Char cStr;
for(i=1; i < STianF.BCOUnt+1;i++)
m_Grid.SetRow(i); //定位到第i行
m_Grid.SetCol(0); //定位到第1列
Sprintf(CStr,"%d",i); //将序号转化为字符型
m_Grid.SetText(CStr); //在第i行第1列显示序号
Sprintf(CStr,"%d%,sTianF.STianX[i-1].iAz/10); //将方
位角数据从整理转化为字符型
m_Grid.SetCol(1); //定位到第2 列
m_Grid.SetText(cStr); //在第i行第2 列显示方位角数据
sprintf(cStr,"%5.2f",sTianFn.sTianX[i-l].dPower);//将
增益值从浮点型转化为字符型
m_Grid.SetCol(2);//定位到第3列
m_Grid.SetText(cStr);//在第i行第3列显示天线增益数据
(3)修改并保存表格数据
假设只对天线方向图中的增益数据做修改,而其他数据不能被修改
在ResourceView中,打开IDD_TESTTMP_DIALOG
对话框,选中控件工具栏上的编辑控件插入到该对话
框的适当位置。在ClassWizard中为CTesttmpDlg的
编辑控件添加控件变量m_Edit,然后在该类的对话
框初始化函数OnInitDialog()中添加如下代码:
m_Edit.ShowWindow(SW_HIDE);//隐藏该编辑控件
(1)修改表格数据
在ClassWizard中为表格控件添加Click消息响
应函数 OnClickGrid(),为编辑控件添加
EN_KILLFOCUS消息响应函数OnKillfocusEdit()。
在消息响应函数mClickGrid()中做如下处理:
·做边界检查,如果鼠标击中的表格项是标题
行、表格第1、2列,则立即返回。
.计算鼠标击中的表格项的行宽width和行高
height,以及该表格项左上角在对话框客户区上的屏幕坐标x和y值。
·激活编辑控件并显示在表格的相应位置上以便接受输入数据的修改。
CString S;
S=m_Grid.GetText();//取得该表格项显示的数据
m_Edit.MoveWindow(X,y,Width,height);//改变编辑控作的显示位
置及大小
m_Edit.ShowWindow(SW_SHow);//设置该编辑控件为可见状态
m_Edit.EnableWindow(TRUE);//激活该编辑控件窗口
m_Edlt.SetFocus();//设置输入焦点
m_Edit.SetWindowText(S);//将表格项数据显不在该编辑控件窗口
在消息响应函数OnKillfocusEdit()中做如下处
理:
· 藏编辑控件并使控件窗口无效。
·如果最新键入的数据与表格项原显示数据不
同,则用新数据代替原数据。
m_Grid.SetText(str);//重新设置表格项数据
(2)保存表格数据
在ClassWizard中,为"保存"按钮添加
BN_CLICKED消息响应函数OnSave(),.然后在消息响应函数OnSave()中做如下处理:
·逐行获取天线方向图的增益数据并保存在结构中。
CString cstr;
or(int i = l; i < sTianF.BCount+l; i++)
m_Grid.SetRow(i); //定位到第i行
m_Grid.SetCol(2); //定位到第3列
cstr = m_Grid.GetText(); //获取该行列的表格项数据
sTian.sTianx[i-1].dPower=atof(cstr);//将数据保存
到结构中
将结构数据写到文件AEA02000.D01中保