Операционная система Microsoft Windows 3.1 для программиста -том 1


Приложение TMCLOCK - часть 4


// Заполняем структуру информацией // о метрике шрифта, выбранного в // контекст отображения GetTextMetrics(hdc, &tm);

// Запоминаем значение ширины для // самого широкого символа cxChar = tm.tmMaxCharWidth;

// Запоминаем значение высоты букв с // учетом межстрочного интервала cyChar = tm.tmHeight + tm.tmExternalLeading;

ReleaseDC(hwnd, hdc); return 0; }

// Для обеспечения возможности перемещения // окна, не имеющего заголовка, встраиваем // свой обработчик сообщения WM_NCHITTEST case WM_NCHITTEST: { long lRetVal;

// Вызываем функцию DefWindowProc и проверяем // возвращаемое ей значение lRetVal = DefWindowProc(hwnd, msg, wParam, lParam);

// Если курсор мыши находится на одном из // элементов толстой рамки, предназначенной // для изменения размера окна, возвращаем // неизмененное значение, полученное от // функции DefWindowProc if(lRetVal == HTLEFT lRetVal == HTRIGHT lRetVal == HTTOP lRetVal == HTBOTTOM lRetVal == HTBOTTOMRIGHT lRetVal == HTTOPRIGHT lRetVal == HTTOPLEFT lRetVal == HTBOTTOMLEFT) { return lRetVal; }

// В противном случае возвращаем значение // HTCAPTION, которое соответствует // заголовку окна. else { return HTCAPTION; } }

// Каждую секунду перерисовываем // внутреннюю область окна case WM_TIMER: { InvalidateRect(hwnd, NULL, FALSE); return 0; }

case WM_DESTROY: { // Перед уничтожением окна уничтожаем // созданные ранее таймеры KillTimer(hwnd, CLOCK_TIMER); KillTimer(hwnd, nBeepTimerID);

PostQuitMessage(0); return 0; }

case WM_PAINT: { BYTE szBuf[80]; int nBufSize; time_t t; struct tm *ltime; RECT rc;

hdc = BeginPaint(hwnd, &ps);

// Определяем время и его отдельные компоненты time(&t); ltime = localtime(&t);

// Подготавливаем буфер, заполняя его // строкой с текущим временем nBufSize = wsprintf(szBuf, "%02d:%02d:%02d", ltime->tm_hour, ltime->tm_min, ltime->tm_sec);

// Выбираем шрифт с фиксированной шириной букв SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));

// Получаем координаты и размер окна GetClientRect(hwnd, &rc);




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



Книжный магазин