小女子请教高手:在程序中加入Progress控件后执行,界面上Progress控件反复填充了10多次,可能问题何在? 问题如上,小女之是新手,成长过程中,请大家多多照顾!盼复。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不可能吧,look一下代码~~~ 好的,这里先多谢了 :)m_Progress.SetRange(0,1100);demo.Sech(Dlg2.m_E0,Dlg2.m_Duration,Dlg2.m_Chrip); m_Progress.SetPos(5); demo.saveI("I0.dat");// demo.ExpSin(12.2e-3,32.0e-3);//t1=12.2fs demo.nSavProfile_1("pulse0.dat"); demo.saveFreq_1("Freq0.dat"); m_Progress.SetPos(20); demo.propag(&m_Progress);//propag中有个循环,1000步的,propag()代码附后 m_Progress.SetPos(1050); demo.nSavProfile_1("pulse1.dat"); demo.nSavProfile_n("Pulsen.dat");// demo.SavImax("Imax1.dat");// demo.DDy();// demo.saveI("I1.dat"); m_Progress.SetPos(1080); demo.saveFreq_n("FreqN.dat"); demo.saveFreq_1("Freq1.dat"); m_Progress.SetPos(1100);// demo.saveF("F1.dat");//////////propag()代码:void Soliton1d::propag(CProgressCtrl* m_Progress){ int kk=0,l=PropSteps/NumFig; long i,j,m; double Imax0;////////////////////////////////////////////////////////////////////// char *filename="pop3.dat"; ofstream outfile (filename); if (!outfile ) { cout << "Can not open "<<filename<<" for output !\n"; return; }////////////////////////////////////////////////////////////////////// m_Progress->SetPos(30); for (j=0; j<nn ; j++){ PeakI[j]=data[j+j]*data[j+j]+data[j+j+1]*data[j+j+1]; } datc[0]=dPeakValue(PeakI,nn); Imax0=datc[0]; datc[0]/=Imax0; m_Progress->SetPos(40); for(i=0;i<PropSteps;i++){ m_Progress->StepIt();//这里的ProSteps为1000 fft1dim(1); linear(0.5); fft1dim(-1); nonlinear(); fft1dim(1); linear(0.5); fft1dim(-1); for(j=0;j<nn;j++){ PeakI[j]=data[j+j]*data[j+j]+data[j+j+1]*data[j+j+1]; } datc[i+1]=dPeakValue(PeakI,nn); datc[i+1]/=Imax0; /////////////////////////////////////////////////////////////////////////输出剖面图// if((i==0||(i+1)%l==0) && kk<NumFig){//可输出初始图,但没有最后一步的剖面图 if((i+1)%l==0 && kk<NumFig+1){//可输出最后一步的剖面图,但没有初始图 for(int jj=0;jj<nn;jj++){ //output N temporal profiles dprofile[kk*nn+jj]=data[jj+jj]*data[jj+jj]+data[jj+jj+1]*data[jj+jj+1]; //output N spectrums fft1dim(1); if(jj<halfnn) m=jj+halfnn; else m=jj-halfnn; dprofileFreq[kk*nn+jj]=data[m+m]*data[m+m]+data[m+m+1]*data[m+m+1]; fft1dim(-1); } kk++; } if(i%10==0) outfile << i*PropDelta <<" "<< data[halfnn/2] <<" "<< data[halfnn/2+1]<<endl; cout<<i<<endl; }m_Progress->SetPos(1040);} 不知道这样直接用SetPos()可不可以?问题好像就在propag()函数里,但找不出! 回楼上:您是说我在propag中用StepIt()不合适么? 我试试看 :)谢了! 多谢xiaoshao_0_0,CloudWater(秋云开水),afei2002(afei) , chris_crow(风之子) !我用m_Progress->SetPos(i+40);代替了原来的m_Progress->StepIt();循环就消失了。 多谢xiaoshao_0_0的指点!请问,我怎么给你分? :)(第一次,请勿见笑) xiaoshao_0_0我给了分,不知是否收到, 再次感谢各位! 编写VPN拨号器 局域网不同电脑读写同一ini文件,怎样进行文件锁避免冲突 求怎么打包成DLL 怎样使应用程序处于激活状态 combo box的问题,急! 水晶报表 连接问题 关于硬盘序列号 高分求救,关于DLL里建立SOCKET连接的问题!!! 求助 错误提示是什么原因? 关于COMBOBOX的问题 在Classwizard中怎么没有WM_DRAWITEM消息,如何向里面添加呀?
demo.Sech(Dlg2.m_E0,Dlg2.m_Duration,Dlg2.m_Chrip);
m_Progress.SetPos(5);
demo.saveI("I0.dat");
// demo.ExpSin(12.2e-3,32.0e-3);//t1=12.2fs
demo.nSavProfile_1("pulse0.dat");
demo.saveFreq_1("Freq0.dat");
m_Progress.SetPos(20);
demo.propag(&m_Progress);//propag中有个循环,1000步的,propag()代码附后
m_Progress.SetPos(1050);
demo.nSavProfile_1("pulse1.dat");
demo.nSavProfile_n("Pulsen.dat");
// demo.SavImax("Imax1.dat");
// demo.DDy();
// demo.saveI("I1.dat");
m_Progress.SetPos(1080);
demo.saveFreq_n("FreqN.dat");
demo.saveFreq_1("Freq1.dat");
m_Progress.SetPos(1100);
// demo.saveF("F1.dat");
//////////propag()代码:
void Soliton1d::propag(CProgressCtrl* m_Progress)
{ int kk=0,l=PropSteps/NumFig;
long i,j,m;
double Imax0;
//////////////////////////////////////////////////////////////////////
char *filename="pop3.dat";
ofstream outfile (filename);
if (!outfile ) {
cout << "Can not open "<<filename<<" for output !\n";
return;
}
//////////////////////////////////////////////////////////////////////
m_Progress->SetPos(30);
for (j=0; j<nn ; j++){
PeakI[j]=data[j+j]*data[j+j]+data[j+j+1]*data[j+j+1];
}
datc[0]=dPeakValue(PeakI,nn);
Imax0=datc[0];
datc[0]/=Imax0; m_Progress->SetPos(40);
for(i=0;i<PropSteps;i++){
m_Progress->StepIt();//这里的ProSteps为1000
fft1dim(1);
linear(0.5);
fft1dim(-1);
nonlinear();
fft1dim(1);
linear(0.5);
fft1dim(-1); for(j=0;j<nn;j++){
PeakI[j]=data[j+j]*data[j+j]+data[j+j+1]*data[j+j+1];
}
datc[i+1]=dPeakValue(PeakI,nn);
datc[i+1]/=Imax0;
/////////////////////////////////////////////////////////////////////
////输出剖面图
// if((i==0||(i+1)%l==0) && kk<NumFig){//可输出初始图,但没有最后一步的剖面图
if((i+1)%l==0 && kk<NumFig+1){//可输出最后一步的剖面图,但没有初始图
for(int jj=0;jj<nn;jj++){
//output N temporal profiles
dprofile[kk*nn+jj]=data[jj+jj]*data[jj+jj]+data[jj+jj+1]*data[jj+jj+1];
//output N spectrums
fft1dim(1);
if(jj<halfnn)
m=jj+halfnn;
else
m=jj-halfnn;
dprofileFreq[kk*nn+jj]=data[m+m]*data[m+m]+data[m+m+1]*data[m+m+1];
fft1dim(-1);
}
kk++;
}
if(i%10==0)
outfile << i*PropDelta <<" "<< data[halfnn/2] <<" "<< data[halfnn/2+1]<<endl;
cout<<i<<endl;
}
m_Progress->SetPos(1040);
}
问题好像就在propag()函数里,但找不出!