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

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

Добавих 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