BOOL CTaskApp::OnIdle(LONG lCount)
{
// TODO: Add your
specialized code here and/or call the base class
/*Вызвать
функцию базового класса СWinApp::OnIdle(), чтобы завершить его
служебные задачи*/
CWinApp::OnIdle(lCount);
//Звуковой сигнал
MessageBeep((WORD)-2);
/*Вернуть TRUE, чтобы опять запустить себя, если есть фоновый
режим*/
returnTRUE;
}
/*Вызвать функцию базового класса СWinApp::OnIdle(), чтобы
завершить его служебные
задачи*/
CWinApp::OnIdle(lCount);
//Получить указатель на
шаблон документа
POSITION pos =
GetFirstDocTemplatePosition();
CDocTemplate*
pDocTemplate=GetNextDocTemplate(pos);
//Получить указательна
документ
pos=pDocTemplate->GetFirstDocPosition();
CDocument*
pDoc=pDocTemplate->GetNextDoc(pos);
//Получить указатель на
представление
pos=pDoc->GetFirstViewPosition();
CTaskView*
pView=(CTaskView*) pDoc->GetNextView(pos);
//Переменные для хранения времени
static DWORD
PrevTimeTask1=0;
static DWORD PrevTimeTask2=0;
//Получить Текущее время
DWORD CurrentTime=GetTickCount();
//Получить данные от элементов
уравления
pView->UpdateData(TRUE);
//Если время превысило 50 мс, то прибавить
1
if(CurrentTime>PrevTimeTask1+50 &&
pView->m_EnableTask1Check)
{
pView->m_Task1Edit=pView->m_Task1Edit+1;
pView->UpdateData(FALSE);
PrevTimeTask1=CurrentTime;
}
//Если время превысило 500 мс и cчетчик включен, то прибавить
1
if(CurrentTime>PrevTimeTask2+500
&&
pView->m_EnableTask2Check)
{
pView->m_Task2Edit=pView->m_Task2Edit+1;
pView->UpdateData(FALSE);
PrevTimeTask2=CurrentTime;
}
return
TRUE;
////-Мой код заканчивается здесь-////
}
Вначале первой конструкцией операторов вы получаете указатель на представление, т.к. вам необходимо изменять содержимое элементов управления.
Затем вы вводите две статические переменные, которые будут
хранить время последнего прибавления единицы, если времени прошло
больше 50 и 500 мс, то прибавляется едница, и окно редактирования
обновляется.
Так же в условии мы проверяем, чтобы отметка флажка
Enable была включена, иначе счетчик не должен работать.
Вот и вся программа, на ее примере вы научились выполнять
фоновые задачи.