[問題] MFC的TIMER呼叫兩次
想請教一個MFC的問題
我目前在寫 Dialog based 的 MFC
可是不知道為什麼
每次onTimer都會執行兩次 @@"
code如下:
#define IDT_TIMER_0 1000 //確定沒有和程式裡別的ID重複
BEGIN_MESSAGE_MAP(CtestButtonPressDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON1, &CtestButtonPressDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON, &CtestButtonPressDlg::OnBnClickedButton)
ON_WM_KEYDOWN()//IDC_BUTTON,&CtestButtonPressDlg::OnKeyDown)
ON_WM_KEYUP()//IDC_BUTTON,&CtestButtonPressDlg::OnKeyUp)
ON_BN_DOUBLECLICKED(IDC_BUTTON,
&CtestButtonPressDlg::OnBnDoubleclickedButton)
END_MESSAGE_MAP()
BOOL CtestButtonPressDlg::OnInitDialog()
{
CDialog::OnInitDialog();
....
m_TimerID = SetTimer (IDT_TIMER_0, 1000, NULL);
...
}
void CtestButtonPressDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent == m_TimerID)
{
KillTimer(nIDEvent);
pFile = fopen ("myfile.txt","a");
fprintf (pFile, " %u ",GetTickCount());
fclose (pFile);
SetTimer (m_TimerID, 1000, NULL);
}
CDialog::OnTimer(nIDEvent);
}
結果是每次相同的tickcount都會印兩次
試過把KillTimer和SetTimer都拿掉
timer也會跑
還是一樣的結果 onTimer跑兩次
嘗試著用Debug Mode去看nIDEvent的值
發現他除了每次時間到都回傳兩次m_TimerID的值以外
有時候也會回傳1
想過可能是print的問題 改用ofstream 結果還是一樣 QQ
請問這是為什麼呢
感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.225.27
※ 編輯: icarusming 來自: 140.112.225.27 (12/09 09:49)
※ 編輯: icarusming 來自: 140.112.225.27 (12/09 11:38)
→
12/12 09:14, , 1F
12/12 09:14, 1F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章