现有CDialog CDlgA和CDlgB
//CDlgA.cpp
....
...OnButtonXXX()
{
  CDlgB  dlg_b;
  dlg_b.DoModal();
}//CDlgB.cpp
...
...OnInitDialog()
{
  SetTimer(1,1000,NULL)
  
}OnTimer(..
{
   static i=1;
switch(i)
{
case 1:
m_chk1.SetCheck(TRUE);
break;
case 2:
m_chk2.SetCheck(TRUE);
break;
case 3:
m_chk3.SetCheck(TRUE);
break;
case 4:
m_chk4.SetCheck(TRUE);
break;
case 5:
m_edt_XXX.ShowWindow(SW_SHOW); break;
default:
break;
}
if (i>=6)
{
KillTimer(1);
//i=0;  //就是这个地方改了就行了 }
i++;
........}为什么我把dlg_b销毁后,static i 还有?这个i又不在A的类里面

解决方案 »

  1.   

    i确实是不在dlg内,静态变量生命期是整个程序运行期间,只是访问域被限制在OnTimer函数内
      

  2.   

    收到了,那我还是在CDlg B中加个public: int i;咯
    二楼的要分的话回答下我的这个问题
    http://community.csdn.net/Expert/topic/4604/4604344.xml?temp=.4602014
    谢谢,一定给分