如何用 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*/)
我在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*/)