用ATL作activex 定义一个定时器 LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& Handled)
{
num++;
FireViewChange();
return 0;
}我想在OnDraw完成时启动定时器
if(First)
{
::SetTimer(this->m_hWndCD,1,1000,NULL);//放到构造函数里也不行
First = FALSE;
}return S_OK;//end ondraw可是调试的时候不知道怎么回事,程序根本进不到定时器里,是不是
::SetTimer(this->m_hWndCD,1,1000,NULL);不对啊??这里面有没有一个与mfc的InitDialog类似的东东啊??
{
num++;
FireViewChange();
return 0;
}我想在OnDraw完成时启动定时器
if(First)
{
::SetTimer(this->m_hWndCD,1,1000,NULL);//放到构造函数里也不行
First = FALSE;
}return S_OK;//end ondraw可是调试的时候不知道怎么回事,程序根本进不到定时器里,是不是
::SetTimer(this->m_hWndCD,1,1000,NULL);不对啊??这里面有没有一个与mfc的InitDialog类似的东东啊??
具体来说,两种方式:
一、时间线程方式:
定义
static void CALLBACK MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime);
UINT m_nTimerID;使用
m_nTimerID = SetTimer(NULL,NULL,100,MyTimerProc);销毁
KllTimer(NULL,m_nTimerID);注意:这种方式在实现MyTimerProc函数时里边必须调静态的函数,你可以用另外一个类/文件实现这个函数。
二、运用TimerGetTime().即启动一个线程,自己实现时间线程我都测试过,没问题的