一、我的程序功能:
我的主对话框MianDlg有一个Tab控件,里面有6个Tab,每个Tab是一个独立的子对话框,里面都有一个teechart控件。
在MainDlg中有一个按钮button1,里面主要执行逐个在6个Tab里面动态画六个图,但
我的要求是第一个Tab动态画完以后再画第2个Tab的。
二、动态画图
动态画图中,我在每个独立的子对话框中都使用了计时器的功能,settimer。
三、我出现的问题:
我在button1下面写了一个循环代码
for(i=0;i<5;i++)
{
case(i)
{
0:
//显示tab1
m_s1.activeTime();//调用第一个子对话框的settimer(),让它开始实时画图
//这里我想要等待tab1的动态画图结束后再运行下面的代码
1:
//显示tab2
m_s2.activeTime();//同理,调用第一个子对话框的settimer(),让它开始实时画图
//下面3、4、5代码省略
}
}
但是结果是:我发现N多个tab基本同时开始实时画图,找到原因是:ontimer优先级很低,会跟其他代码协同式合作运行。
接着,我使用了一个解决方法。就是不用for循环,而是在我第一个tab动态画图结束的时候,重新调用button1,想让他第二次执行去画tab2,依次类推。
我在tab1中,killtimer以后,加了
MainDlg *dlg=new MainDlg ;
dlg->create(IDD_Main);
dlg->ShowWindow(SW_SHOW);
dlg->OnBtn1();
出现的问题:这里相当于新建了一个主对话框类的对象,我之前在界面上对复选框和一些其他控件做的选择都没有了。
我是C++ 菜鸟 积分也不多,如果哪位大侠知道怎么能实现我最上面所写的程序功能,希望能提点一下小妹我。
下面是我的程序朱对话框: