我在dialog中放了一个按钮,在点击按钮的同时打开另一个进程,如果打开成功,则开启定时器,但是现在是打开进程成功了,但是定时器就是不跑道他的响应函数中,为什么啊?
void CTDlg::OnBtnset()
{
CString str;
str = m_szCurrentPath + "Reset.exe";
m_hPass = RunProcess(str);
if(m_hPass!= NULL)
{ GetDlgItem(IDC_BTN_RESET)->EnableWindow(FALSE);
if(m_bThreadActive == FALSE)
{
m_bThreadActive = TRUE;
SetTimer(1, 100, NULL);
}
}
}void CTDlg::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
AfxMessageBox("OK!");
CDialog::OnTimer(nIDEvent);
}

解决方案 »

  1.   

    m_bThreadActive 在哪设置的?
      

  2.   

    跟一下,看是否执行了SetTimer
      

  3.   

    在SetTimer(1,100,NULL)设一个断点看看是否执行到了这个地方?
      

  4.   

    我跟了,执行了SetTimer这个语句,不过我现在发现了,我用了换肤程序后,定时器就不灵了,我把换肤屏蔽后,定时器就可以了,我不是很明白,这是为什么啊?难道换肤了就不能用定时器吗?请各位帮我解答一下,谢谢了!
      

  5.   


    SetTimer(1, ...
    换称
    SetTimer(8888, ...
    试试,
    看看是不是和他们的定义重合了
      

  6.   

    it's ok now
    there is bugs for timer in the skin procedure
    Thank you every body!