怎么让MFC编辑框里出现多个数据
voidCMyDlg::OnBnClickedButton1(){//TODO:在此添加控件通知处理程序代码floatKt,Kp,Ft,Fp;floattj,pj,E,t...
void CMyDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
float Kt,Kp,Ft,Fp;
float tj,pj,E,tor,H;
float Etmp1,Etmp2,Etmp3,Etmp4,Etmp5;
float m,n,be,B,D,Dtmp;
E=0;
for(m_EDIT4=0;m_EDIT4<2;m_EDIT4++)
Kt=(m_EDIT1+1.681*m_EDIT2)*100;
Kp=(m_EDIT1-0.392*m_EDIT2)*100;
Ft=226.29/(99.15+211.9*m_EDIT3-Kt);
Fp=156.47/(160.8-7.22*m_EDIT3+Kp);
tj=(1.8*m_EDIT4+492)*Ft-460;
pj=145.04*m_EDIT5*Fp;
tor=(tj+460)/500;
H=(pj+14.7)/1000;
if ((tor>=1.09)&&(tor<1.4)&&(m_EDIT5<=13.79))
{
Etmp1=pow((tor-1.09),0.5);
Etmp2=pow(H,2.3);
E=1-0.00075*Etmp2*exp(-20*(tor-1.09))-0.0011*Etmp1*pow(H,2)*(2.17+1.4*Etmp1-H)*(2.17+1.4*Etmp1-H);
}
if ((tor>=0.88)&&(tor<1.09)&&(m_EDIT5<=13.79)&&(m_EDIT5>8.963))
{
Etmp1=exp(-20*(1.09-tor));
Etmp2=pow(H,2.3);
Etmp3=pow((1.09-tor),2);
Etmp4=pow((1.09-tor),3);
Etmp5=200*Etmp4*Etmp4-0.03249*(1.09-tor)+2.0167*Etmp3-18.028*Etmp4+42.844*Etmp3*Etmp3;
E=1-0.00075*Etmp2*(2-Etmp1)+0.455*Etmp5*(H-1.3)*(4.01952-H*H);
}
if ((tor>=0.84)&&(tor<1.09)&&(m_EDIT5<=8.963))
{
Etmp1=exp(-20*(1.09-tor));
Etmp2=pow(H,2.3);
Etmp3=pow((1.09-tor),4);
E=1-0.00075*Etmp2*(1-Etmp1)-1.317*Etmp3*H*(1.69-H*H);
}
m=0.0330378/pow(tor,2)-0.0221323/pow(tor,3)+0.0161353/pow(tor,5);
n=(-0.133185/tor+0.265827/pow(tor,2)+0.0457697/pow(tor,4))/m;
B=(3-m*n*n)/(9*m*H*H);
be=(9*n-2*m*n*n*n)/(54*m*pow(H,3))-E/(2*m*H*H);
Dtmp=be+sqrt(be*be+B*B*B);
D=pow(Dtmp,1.0/3.0);}
m_EDIT6=sqrt(B/D-D+n/(3*H))/(1+0.00132/pow(tor,3.25));
// return Fz1;
}
这个是按钮里面的函数 现在点一下只能出来一个数 m_EDIT4 m_EDIT5是从0到2之间的数 怎么加代码能让他点一下按钮EDIT6里面出现多个数
在里面加个循环什么的 怎么弄帮我改一下呗
界面是这样 t和p是0到2之间的整数 剩下的三个是固定的值 就是我想现在往t和p里输入0 完了再结果里可以出现t和p从0变化到2的所有计算结果 展开
{
// TODO: 在此添加控件通知处理程序代码
float Kt,Kp,Ft,Fp;
float tj,pj,E,tor,H;
float Etmp1,Etmp2,Etmp3,Etmp4,Etmp5;
float m,n,be,B,D,Dtmp;
E=0;
for(m_EDIT4=0;m_EDIT4<2;m_EDIT4++)
Kt=(m_EDIT1+1.681*m_EDIT2)*100;
Kp=(m_EDIT1-0.392*m_EDIT2)*100;
Ft=226.29/(99.15+211.9*m_EDIT3-Kt);
Fp=156.47/(160.8-7.22*m_EDIT3+Kp);
tj=(1.8*m_EDIT4+492)*Ft-460;
pj=145.04*m_EDIT5*Fp;
tor=(tj+460)/500;
H=(pj+14.7)/1000;
if ((tor>=1.09)&&(tor<1.4)&&(m_EDIT5<=13.79))
{
Etmp1=pow((tor-1.09),0.5);
Etmp2=pow(H,2.3);
E=1-0.00075*Etmp2*exp(-20*(tor-1.09))-0.0011*Etmp1*pow(H,2)*(2.17+1.4*Etmp1-H)*(2.17+1.4*Etmp1-H);
}
if ((tor>=0.88)&&(tor<1.09)&&(m_EDIT5<=13.79)&&(m_EDIT5>8.963))
{
Etmp1=exp(-20*(1.09-tor));
Etmp2=pow(H,2.3);
Etmp3=pow((1.09-tor),2);
Etmp4=pow((1.09-tor),3);
Etmp5=200*Etmp4*Etmp4-0.03249*(1.09-tor)+2.0167*Etmp3-18.028*Etmp4+42.844*Etmp3*Etmp3;
E=1-0.00075*Etmp2*(2-Etmp1)+0.455*Etmp5*(H-1.3)*(4.01952-H*H);
}
if ((tor>=0.84)&&(tor<1.09)&&(m_EDIT5<=8.963))
{
Etmp1=exp(-20*(1.09-tor));
Etmp2=pow(H,2.3);
Etmp3=pow((1.09-tor),4);
E=1-0.00075*Etmp2*(1-Etmp1)-1.317*Etmp3*H*(1.69-H*H);
}
m=0.0330378/pow(tor,2)-0.0221323/pow(tor,3)+0.0161353/pow(tor,5);
n=(-0.133185/tor+0.265827/pow(tor,2)+0.0457697/pow(tor,4))/m;
B=(3-m*n*n)/(9*m*H*H);
be=(9*n-2*m*n*n*n)/(54*m*pow(H,3))-E/(2*m*H*H);
Dtmp=be+sqrt(be*be+B*B*B);
D=pow(Dtmp,1.0/3.0);}
m_EDIT6=sqrt(B/D-D+n/(3*H))/(1+0.00132/pow(tor,3.25));
// return Fz1;
}
这个是按钮里面的函数 现在点一下只能出来一个数 m_EDIT4 m_EDIT5是从0到2之间的数 怎么加代码能让他点一下按钮EDIT6里面出现多个数
在里面加个循环什么的 怎么弄帮我改一下呗
界面是这样 t和p是0到2之间的整数 剩下的三个是固定的值 就是我想现在往t和p里输入0 完了再结果里可以出现t和p从0变化到2的所有计算结果 展开
6个回答
展开全部
你好。出现多个数用关联变量是不行的。你只能直接操作字符串。
int i = 0, j = 1;
CString str1, str2, strTemp;
str1.Format("%d %d", i, j);
str2.Format("%d", i);//方法2
str2 += " ";
strTemp.Format("%d", j);
str2 += strTemp;
然后调用函数
GetDlgItem(你的EDIT控件ID)->SetWindowText(str1或者str2);
来在EDIT控件上显示值。
具体思路。你可以在你的循环外保存一个CString变量。在循环内建立一个临时变量。
然后像方法2一样一直加下去,最后把CString变量在edit上显示就好了。
可以用str2 = ""来清空字符串。
int i = 0, j = 1;
CString str1, str2, strTemp;
str1.Format("%d %d", i, j);
str2.Format("%d", i);//方法2
str2 += " ";
strTemp.Format("%d", j);
str2 += strTemp;
然后调用函数
GetDlgItem(你的EDIT控件ID)->SetWindowText(str1或者str2);
来在EDIT控件上显示值。
具体思路。你可以在你的循环外保存一个CString变量。在循环内建立一个临时变量。
然后像方法2一样一直加下去,最后把CString变量在edit上显示就好了。
可以用str2 = ""来清空字符串。
追问
啥意思不懂。。。能不能直接帮我把代码改好了。。我的意思是编辑框4里的数是0,1,2 但是输入的时候只输入0就可以 然后点一下按钮 编辑框6里会出现三个数 分别对应编辑框4里的0,1,2
展开全部
把 EDIT6 的属性设置一下 属性栏中 (样式)(多行)打钩。
在编辑框换行用Format函数,换行的位置加 "\r\n" ,例如:
{
CString a,b;
a= "test1";
b="test2";
m_EDIT6.Format("%s\r\n%s",a,b);
UpdateData(false);
}
运行编辑框显示:
test1
test2
具体你自己改动一下吧。
在编辑框换行用Format函数,换行的位置加 "\r\n" ,例如:
{
CString a,b;
a= "test1";
b="test2";
m_EDIT6.Format("%s\r\n%s",a,b);
UpdateData(false);
}
运行编辑框显示:
test1
test2
具体你自己改动一下吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加个两层for循环分别表示t和p的0-2循环里面就写上Edit6的计算公式,显示的时候用spintf或者用format显示循环里面也要写上updatedata(False);
例如:
CString str1;
str1.Format("%d",edit6);
for(edit4=0;edit4<=2;edit4++)
{
for(edit5=0;edit5<=2;edit5++)
{
edit6=edit4+edit5;//edit6的计算方法,这里只是举个例子
str1.Format("%s %d",str1, edit6);
}
}
GetDlgItem(你的EDIT控件ID)->SetWindowText(str1);
updatedata(False);
例如:
CString str1;
str1.Format("%d",edit6);
for(edit4=0;edit4<=2;edit4++)
{
for(edit5=0;edit5<=2;edit5++)
{
edit6=edit4+edit5;//edit6的计算方法,这里只是举个例子
str1.Format("%s %d",str1, edit6);
}
}
GetDlgItem(你的EDIT控件ID)->SetWindowText(str1);
updatedata(False);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把几个数利用vsprintf转换成一个字符串;
例如:vsprintf("%d % %d ", data1,data2,data3,....);
吧这个包含多个数的字符串显示在edit框。
例如:vsprintf("%d % %d ", data1,data2,data3,....);
吧这个包含多个数的字符串显示在edit框。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0、说实话,不明白你的实际需求是什么。编辑框内全部是字符串,就是一个数据(不管数据有多长)。你应该在说具体点。
1、m_edit1……m_edit6是什么东东
1、m_edit1……m_edit6是什么东东
追问
是六个编辑框的变量~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询