WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  MFS & Timer

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   MFS & Timer
DEiL опубликован 01-03-2001 20:39 MSK   Click Here to See the Profile for DEiL   Click Here to Email DEiL  
люди, есть ли в МФЦ аналог TTimer из Дэльфи?
(в VB точно есть, сам знаю)
если нет, то как его можно сделать? :)
purpe опубликован 02-03-2001 00:01 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
я делал примерно так:

объявляю в классе следующие переменные и функции:

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()

вроде должно работать :)

DEiL опубликован 02-03-2001 19:51 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
хех, спасибо :)
а как этот таймер прибить? :)))
purpe опубликован 02-03-2001 20:40 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
элементарно Ватсон :)

функция уничтожения окна:

void CMainWnd::OnDestroy()
{
CWnd::OnDestroy();

if(m_uTimer) KillTimer(m_uTimer);
}

DEiL опубликован 02-03-2001 22:50 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
хех. клёво %)
а таким макаром ещё пару таймеров сделать низзя? :)))
Elephant опубликован 03-03-2001 01:01 MSK     Click Here to See the Profile for Elephant  Click Here to Email Elephant     
Посмотри на функцию SetTimer. Первый аргумент - ID таймера. В обработчике OnTimer добавь проверку на то, какой таймер активизировался и делай, то что тебе надо!
DEiL опубликован 03-03-2001 08:40 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
блин, спасибо люди - выручили :)
возьмите по пирожку с полочки! :-]

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.