Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 38


SetTimerd,1000) ;//Устанавливаем таймер на частоту 1с

OutTime() ; //Сразу же выводим в окно текущее время

return 0;

} void MyWindow::EvGetMinMaxInfо(MINMAXINFO far & mmi){

mmi.ptMinTrackSize.x=185; mmi.ptMinTrackSize.y=45; mmi.ptMaxTrackSize.x=185;

mmi.ptMaxTrackSize.y=45;

} void MyWindow::EvTimer(UINT){

OutTime();

}

/*Функция

OutTime() чтения и преобразования текущего времени*/ void MyWindow::OutTime (){

tm* tmTime;//Указатель на структуру для хранения времени

time_t sec=time(NULL);//Получение числа секунд от 01.01.1970

tmTime=localtime(&sec);//Преобразование в формат даты/времени

strcpy(szText," ");//Один пробел в начале для красоты

strcat(szText,asctime(tmTime));//Преобразование в коды ASCII

szText[strlen(szText)-1]='\0';//Замена завершающего CR на нуль

Invalidate();//Инициирование перерисовки рабочей области окна

}

/*3амещающая функция Paint()*/ void MyWindow::Paint(TDC&dc,bool,TRect&){

dc.TextOut(0,0,szText);

}

/*3амещакщая функция

InitMainWindow() */ void MyApp::InitMainWindow(){

MyWindow* myWin=new MyWindow(0,"Текущее время");

SetMainWindow(myWin);

}

/*Главная функция приложения

OwlMain*/ int OwlMain(int,char*[]){

MyApp* myApp=new MyApp;

return myApp->Run();

}

Таблица откликов и функции обработки сообщений

В предыдущей главе уже отмечалось, что для обработки сообщения WM_PAINT, имеющего особую важность, в OWL предусмотрена упрощенная процедура, заключающаяся в предоставлении программи­сту функции-заглушки Paint(), которую можно заместить прикладной функцией с тем же именем. В за­мещающей функции Paint() оказывается доступен контекст устройства dc, что дает возможность исполь­зовать для вывода в окно приложения весь богатый набор функций GDI.

Для обработки других сообщений Windows (от мыши, пунктов меню, таймера и т.д.) в программе не­обходимо предусмотреть следующие элементы:

•   Объявление в классе главного окна таблицы откликов (макрос DECLARE_RESPONSE_TABLE)




Начало  Назад  Вперед