![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.73.102] |
![]() |
|
Сообщ.
#1
,
|
|
|
люди, есть ли в МФЦ аналог TTimer из Дэльфи?
(в VB точно есть, сам знаю) если нет, то как его можно сделать? ![]() |
![]() |
Сообщ.
#2
,
|
|
я делал примерно так:
объявляю в классе следующие переменные и функции: class CMainWnd : public CWnd { ....... public: CTime m_timeStarted; UINT m_uTimer; ....... protected: //{{AFX_MSG(CMainWnd) afx_msg void OnTimer(UINT nIDEvent); ..... } далее в обработчике OnCreate запускаю таймер: int CMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; m_uTimer = SetTimer(1, 30000, NULL); ....... } цифра 30000 означает, что таймер будет генерировать сообщения с интервалом в 30 секунд. После этого создаю обработчик OnTimer: void CMainWnd::OnTimer(UINT nIDEvent) { //здесь функция, которая будет вызываться каждые 30 секунд CWnd::OnTimer(nIDEvent); } и надо не забыть добавить: BEGIN_MESSAGE_MAP(CMainWnd, CWnd) //{{AFX_MSG_MAP(CMainWnd) ..... ON_WM_TIMER() ..... //}}AFX_MSG_MAP END_MESSAGE_MAP() вроде должно работать ![]() |
Сообщ.
#3
,
|
|
|
хех, спасибо
![]() а как этот таймер прибить? ![]() |
![]() |
Сообщ.
#4
,
|
|
элементарно Ватсон
![]() функция уничтожения окна: void CMainWnd::OnDestroy() { CWnd::OnDestroy(); if(m_uTimer) KillTimer(m_uTimer); } |
Сообщ.
#5
,
|
|
|
хех. клёво \%)
а таким макаром ещё пару таймеров сделать низзя? ![]() |
Сообщ.
#6
,
|
|
|
Посмотри на функцию SetTimer. Первый аргумент - ID таймера. В обработчике OnTimer добавь проверку на то, какой таймер активизировался и делай, то что тебе надо!
|
Сообщ.
#7
,
|
|
|
блин, спасибо люди - выручили
![]() возьмите по пирожку с полочки! :-] |