我在TAB控件上弄了3个页面,第一个页面定时刷新数据显示在上面,第二、三页面是调用功能页面。
第一个TAB页面类的OnInitDialog()函数是这么写的
CDialog::OnInitDialog();
KillTimer(111);
SetTimer(111,1000,NULL); //开启定时器,定时刷新页面
return TRUE;OnTimer()中设置了定时器的执行代码。
执行程序后,数据可以实时的刷新显示在第一个页面上,
但是偶尔会出现,窗口锁定不能移动的情况,要关闭后重新打开才行,
过不了多久又不能移动窗口了,但是里面的TAB页还可以切换,各种功能也可以执行,请问这是什么原因?
怎么才能解决窗口无法移动的问题?还有一个问题,如果从TAB第二个页面切换到TAB第一个页面,每次是否都调用页面一的OnInitDialog()函数?
还是只调用一次?

解决方案 »

  1.   

    不能移动窗口可能是你刷新的太频繁了吧OnInitDialog()一般是在程序刚运行的时候执行一次,所以切换页面的过程中,它不会每次都执行OnInitDialog(),除非是你每次切换的过程中是将某一个页面销毁了,然后重新打开销毁的那个页面。你在OnInitDialog()设一个断点,运行一下就知道了
      

  2.   

    在工作线程里用CreateWaitableTimer,SetWaitableTimer等系列函数设置定时器。
    创建工作线程用AfxBeginThread