如何用 ATL CAxDialogImpl 方法替换 MFC CDailog::OnTimer?

How do I replace MFC CDailog::OnTimer with ATL CAxDialogImpl method?

我在CDialog的基础上用MFC写了一个CMyDailog。并且有一个 OnTimer 方法覆盖 CDialog 方法。

CMyDailog : public CDialog
{
    afx_msg void OnTimer(UINT_PTR nIDEvent)
}

现在,我们正在将 MFC 代码迁移到 ATL。我必须让 CMyDailog 继承自 CAxDialogImpl<CMyDailog>

CMyDailog : public CAxDialogImpl<CMyDailog>
{}

我没有在 ATL 端找到 CDialog::OnTimer 的等效项。我必须使用 Windows API ::SetTimer(GolbalTimerFunction) 来实现吗?在这种情况下,我必须将我的原始成员变量值移动到全球范围内——我不喜欢这样。

我发现这可能有帮助: https://www.codeproject.com/Messages/2870588/what-is-the-event-i-should-use.aspx

我找到了对应的。

LRESULT OnTimer(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/)

For more detail