类向导中断时,将Timer(WM_TIMER)处理程序添加到Visual C ++ 6.0中?

时间:2013-01-20 19:37:37

标签: visual-c++ mfc vc6

我有一个MFC Visual C ++应用程序似乎无法在类向导中工作,但是,我有一个视图(CServerView),我想添加一个WM_TIMER事件处理程序。

我已经弄清楚如何拨打CWnd::SetTimerCWnd::KillTimer,但十多年来我没有做过的事就是修改消息地图。我不确定我应该为我的CView子类修改的地图是ServerView.cpp文件的这一部分,还是ServerView.h中的某些部分:

BEGIN_MESSAGE_MAP(CServerView, CListView)
    //{{AFX_MSG_MAP(CServerView)
    ON_COMMAND(ID_DRIVER_START, OnDriverStart)
    ON_UPDATE_COMMAND_UI(ID_DRIVER_START, OnUpdateDriverStart)
        ...
    // Standard printing commands
END_MESSAGE_MAP()

这可能是一件微不足道的事情,但是我面临的两个复杂问题是,关于这一点的在线文档都是针对最近的Visual Studio版本的,而且我在Visual C ++ 6.0中坚持这样做

2 个答案:

答案 0 :(得分:7)

在您的标头文件中:

afx_msg void OnTimer(UINT_PTR nIDEvent);

在你的cpp文件中:

BEGIN_MESSAGE_MAP(CMyView, CView)
    ON_WM_TIMER()
END_MESSAGE_MAP()

void CMyView::StartTimer
{
    m_nTimerID = SetTimer(2348,100,0);
}

void CMyView::OnTimer(UINT_PTR nIDEvent)
{
    if(nIDEvent==m_nTimerID)
    {
    }
    CView::OnTimer(nIDEvent);
}

答案 1 :(得分:1)

我认为它叫做ON_TIMER或ON_WM_TIMER。检查已定义ON_COMMAND& Co的地方的已安装包含,您可以在那里找到它。或者,在MS'在线搜索MSDN。 这个东西的名字没有改变btw,所以最近版本的文档是可以的。而且我强烈建议升级,VC6,又称VS98今年已经满15年,MS早就停止了对它的支持。