Метод MFC OnTimer() не работает

Я создал приложение на основе диалога MFC и хотел добавить таймер в форму. Но оказывается, что MFC отличается от оконных форм .NET.

Я добавил ON_WM_TIMER() в карту сообщений. и добавлено определение функции для CMyDialog::OnTimer(UINT_PTR x) { }

Но я получаю ошибку компилятора в VS2005. Я не знаю, что я делаю неправильно. «ошибка C2509:« OnTimer »: функция-член не объявлена ​​​​в« CMyDialog »»

Помощь приветствуется. Спасибо.


person dattebayo    schedule 09.08.2011    source источник
comment
Вы добавили объявление метода в файл .h (MyDialog.h): afx_msg void OnTimer(UINT_PTR nIDEvent);???   -  person Javier De Pedro    schedule 10.08.2011


Ответы (2)


Очевидно, вы забыли объявить функцию в MyDialog.h, в CMyDialog объявлении:

afx_msg void OnTimer(UINT_PTR x);

Обратите внимание, что afx_msg является чисто информативным и может быть опущен.

person Serge Wautier    schedule 09.08.2011

Документация по макросу карты ON_WM_TIMER показывает, что вы делаете правильно предмет. Единственное, что я могу придумать, это то, что вы убрали квалификатор afx_msg из определения вашей функции.

Редактировать: Рискуя констатировать очевидное, включили ли вы прототип функции OnTimer в объявление своего класса?

person Mark Ransom    schedule 09.08.2011