пользователей: 21244
предметов: 10456
вопросов: 177505
Конспект-online
зарегистрируйся или войди через vk.com чтобы оставить конспект.
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Обробка повідомлень таймера. Приклади реалізації.

Используется при синхронизации действия программы со временем. Работе таймера соответствует сообщение WM_TIMER. В карте сообщений ему принадлежит макрокоманда ON_WM_TIMER (), которой в свою очередь отвечает обработчик OnTimer ().

// файл st1.h

class CApp : public CWinApp 

[public:            BOOL InitInstance();];

 

class CMainWin : public CFrameWnd 

[public:            void OnTimer(UINT);

            CMainWin();

            DECLARE_MESSAGE_MAP()];

 

// файл st1.cpp

#include <afxwin.h>

#include "st1.h"

 

CMainWin::CMainWin()

[Create(NULL,NULL);         // cтворення вікна з пустим заголовком

 SetTimer(1,500,NULL);       // запуск таймера з інтервалом 500 мілісекунд

]   

BOOL CApp::InitInstance()

[m_pMainWnd = new CMainWin;

 m_pMainWnd->ShowWindow(m_nCmdShow);

 m_pMainWnd->UpdateWindow();

 return TRUE; ]

 

CApp App;

 

BEGIN_MESSAGE_MAP(CMainWin,CFrameWnd)

     ON_WM_TIMER()          // макрокоманда обробки таймера

END_MESSAGE_MAP()

 

void CMainWin::OnTimer(UINT i)

[char s[250];

 CTime curtime = CTime::GetCurrentTime();

 struct tm *newtime;

 newtime=curtime.GetLocalTm();

 wsprintf(s,asctime(newtime));

 s[strlen(s)-1]='\0';

CClientDC dc(this);

 dc.TextOut(10,10,s,strlen(s));           // копіювання рядка із часом у вікно

]


22.06.2015; 09:38
хиты: 19
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2016. All Rights Reserved. помощь