清泛IT社区

标题: 在ATL无窗口ActiveX 控件中如何使用定时器? [打印本页]

作者: 清泛网    时间: 2015-11-13 15:06
标题: 在ATL无窗口ActiveX 控件中如何使用定时器?
MFC中SetTimer设置定时器、OnTimer时间触发回调函数均是CWnd的成员函数,但前提是必须在有窗口的环境下
对于ATL无窗口的情况,只能使用原始SetTimer Win32 API函数,如下:

回调函数:
VOID CALLBACK TimerProc(
    HWND hwnd,        // 定时器消息的窗口句柄
    UINT message,     // WM_TIMER 消息
    INT_PTR idTimer,     // 定时器标志
    DWORD dwTime)     // 当前系统启动计时
{
...
}

调用方法:
UINT nRet = SetTimer(NULL,           // handle to main window
        ID_TIMER,                                // 定时器标识
        1000,                                        // 1 秒间隔
         (TIMERPROC)TimerProc);      // 回调函数

作者: zqp2013    时间: 2015-11-30 16:21
网上有其他的比较复杂的方法,自己实现定时器等等。感觉还是直接用SetTime Win32 API的好
作者: ★龙◎    时间: 2015-12-01 09:14
ATL还是挺复杂的,学习坡度大
作者: 清泛网    时间: 2015-12-01 09:19
★龙◎ 发表于 2015-12-01 09:14
ATL还是挺复杂的,学习坡度大






欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3