Добавить обработчик таймера (WM_TIMER) в Visual C++ 6.0, когда мастер классов не работает?
У меня есть приложение MFC Visual C++, которое, кажется, не может работать в Class Wizard, тем не менее, у меня есть представление (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.
2 ответа
В вашем заголовочном файле:
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);
}
Я думаю, что это называется ON_TIMER или ON_WM_TIMER. Проверьте установленные включенные места на место, где определены ON_COMMAND&Co, там вы найдете это. Кроме того, поиск MSDN онлайн на MS'. Название этой вещи, между прочим, не изменилось, поэтому документы последних версий в порядке. И я настоятельно рекомендую обновить VC6, иначе VS98 исполняется 15 лет в этом году, и MS уже давно перестала его поддерживать.