我有一个MFC Visual C ++应用程序似乎无法在类向导中工作,但是,我有一个视图(CServerView),我想添加一个WM_TIMER事件处理程序。
我已经弄清楚如何拨打CWnd::SetTimer
和CWnd::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中坚持这样做
答案 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早就停止了对它的支持。